Compare commits
	
		
			119 Commits
		
	
	
		
			@0x/contra
			...
			@0x/contra
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 96e0ad7899 | ||
|  | 5a1fee5d31 | ||
|  | 3557a5e5a9 | ||
|  | 0bd43d5265 | ||
|  | 8fd7c1b386 | ||
|  | 50068750f5 | ||
|  | a7a905de4c | ||
|  | f283108586 | ||
|  | 9afe05095a | ||
|  | 3dab892978 | ||
|  | e40ddb800e | ||
|  | 72a74e7c66 | ||
|  | e8ae64673f | ||
|  | 2451f419c8 | ||
|  | 2394eb62aa | ||
|  | f9078bb1c3 | ||
|  | bf25c81f1c | ||
|  | 03ecc530c3 | ||
|  | d52b1d24d0 | ||
|  | 5083fab06a | ||
|  | 1249bf9ccc | ||
|  | 681f6b3f07 | ||
|  | d3ca1fe96b | ||
|  | 9e4f5815e4 | ||
|  | c3c27eaedc | ||
|  | 4bf6a23d23 | ||
|  | aaaf0d02de | ||
|  | 825cc4d035 | ||
|  | c2d44e5c10 | ||
|  | 0efd0860c8 | ||
|  | a890a06664 | ||
|  | 5befb87071 | ||
|  | 12ba4c373a | ||
|  | 7fd25be02e | ||
|  | aa688c4a92 | ||
|  | fb437551c9 | ||
|  | 6fa1de7889 | ||
|  | 7a42df9a65 | ||
|  | 15a508f3ea | ||
|  | b3c20ff909 | ||
|  | 682c07cb73 | ||
|  | 602605ab4b | ||
|  | 0eff2548d5 | ||
|  | 93ee681204 | ||
|  | d7bea98075 | ||
|  | 437a3b048d | ||
|  | f55a9454b5 | ||
|  | 3b03ad0db4 | ||
|  | 27d679e1f1 | ||
|  | 1e16d59c23 | ||
|  | 1e7c9bbb1f | ||
|  | edda1edc50 | ||
|  | d1eb6279b4 | ||
|  | 4ace79d947 | ||
|  | e5eee96487 | ||
|  | 907adf9145 | ||
|  | c046fe6220 | ||
|  | 84bf20de41 | ||
|  | f5a6f74d9a | ||
|  | 7c7fc51ccf | ||
|  | fa22f6de0d | ||
|  | 4f41214af2 | ||
|  | 607b7169bc | ||
|  | 1253490a38 | ||
|  | 0a37a588e8 | ||
|  | 23ee108089 | ||
|  | 64feeeea75 | ||
|  | 2ebef23b8c | ||
|  | cc9f43ba3b | ||
|  | 5f1c139176 | ||
|  | 9eea7de340 | ||
|  | 4480f84efa | ||
|  | 5a8b8afff1 | ||
|  | 67c95bc0b7 | ||
|  | e70ec02be8 | ||
|  | db81a94adb | ||
|  | 475b608338 | ||
|  | 27e36b112e | ||
|  | f698721484 | ||
|  | 0c08353b2c | ||
|  | a074b49732 | ||
|  | 43b75c7953 | ||
|  | 84a78eafc4 | ||
|  | 3c1ab889dd | ||
|  | 012fff46f6 | ||
|  | 6307ebc3a2 | ||
|  | 88d7e73eba | ||
|  | 9653eb9e70 | ||
|  | ad337271d3 | ||
|  | 7591e99316 | ||
|  | ca20df4752 | ||
|  | 841e4ee666 | ||
|  | e2ee3414ea | ||
|  | 5306cc03e9 | ||
|  | 85f5d32de2 | ||
|  | ab698cec14 | ||
|  | b463a39bfa | ||
|  | 018e25345b | ||
|  | b60fa8a7d7 | ||
|  | 048d8dee60 | ||
|  | 927fe2b58b | ||
|  | 89948b360c | ||
|  | 561b60a24d | ||
|  | 4f82543bdf | ||
|  | 3133c509f9 | ||
|  | 426c15692d | ||
|  | 8c87a77faa | ||
|  | d2018f07a2 | ||
|  | d2e57d8163 | ||
|  | 7403c0255a | ||
|  | 75dcd687e2 | ||
|  | afd4805421 | ||
|  | 6aa582d140 | ||
|  | 534d92fa00 | ||
|  | 37aae134ab | ||
|  | 36bd8f68c9 | ||
|  | c3ad42221e | ||
|  | 602ac1f626 | ||
|  | 3126795efe | 
							
								
								
									
										23
									
								
								.readthedocs.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								.readthedocs.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | |||||||
|  | # Read the Docs configuration file | ||||||
|  | # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details | ||||||
|  |  | ||||||
|  | # Required | ||||||
|  | version: 2 | ||||||
|  |  | ||||||
|  | # Build documentation in the docs/ directory with Sphinx | ||||||
|  | sphinx: | ||||||
|  |   configuration: docs/conf.py | ||||||
|  |  | ||||||
|  | # Build documentation with MkDocs | ||||||
|  | #mkdocs: | ||||||
|  | #  configuration: mkdocs.yml | ||||||
|  |  | ||||||
|  | # Optionally build your docs in additional formats such as PDF | ||||||
|  | #formats: | ||||||
|  | #  - pdf | ||||||
|  |  | ||||||
|  | # Optionally set the version of Python and requirements required to build your docs | ||||||
|  | python: | ||||||
|  |   version: 3.7 | ||||||
|  |   install: | ||||||
|  |     - requirements: docs/requirements.txt | ||||||
| @@ -13,9 +13,11 @@ | |||||||
|         "indent": ["error", 4], |         "indent": ["error", 4], | ||||||
|         "max-line-length": ["warn", 160], |         "max-line-length": ["warn", 160], | ||||||
|         "no-inline-assembly": false, |         "no-inline-assembly": false, | ||||||
|  |         "no-empty-blocks": false, | ||||||
|         "quotes": ["error", "double"], |         "quotes": ["error", "double"], | ||||||
|         "separate-by-one-line-in-contract": "error", |         "separate-by-one-line-in-contract": "error", | ||||||
|         "space-after-comma": "error", |         "space-after-comma": "error", | ||||||
|         "statement-indent": "error" |         "statement-indent": "error", | ||||||
|  |         "no-empty-blocks": false | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,4 +1,113 @@ | |||||||
| [ | [ | ||||||
|  |     { | ||||||
|  |         "timestamp": 1611648096, | ||||||
|  |         "version": "3.7.5", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1610510890, | ||||||
|  |         "version": "3.7.4", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1609802516, | ||||||
|  |         "version": "3.7.3", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608692071, | ||||||
|  |         "version": "3.7.2", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608245516, | ||||||
|  |         "version": "3.7.1", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "3.7.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Fix Bancor support of ETH", | ||||||
|  |                 "pr": 88 | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1608105788 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607485227, | ||||||
|  |         "version": "3.6.9", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607381756, | ||||||
|  |         "version": "3.6.8", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1606961263, | ||||||
|  |         "version": "3.6.7", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605763885, | ||||||
|  |         "version": "3.6.6", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605302002, | ||||||
|  |         "version": "3.6.5", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1604385937, | ||||||
|  |         "version": "3.6.4", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|         "timestamp": 1604376968, |         "timestamp": 1604376968, | ||||||
|         "version": "3.6.3", |         "version": "3.6.3", | ||||||
|   | |||||||
| @@ -5,6 +5,54 @@ Edit the package's CHANGELOG.json file only. | |||||||
|  |  | ||||||
| CHANGELOG | CHANGELOG | ||||||
|  |  | ||||||
|  | ## v3.7.5 - _January 26, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.7.4 - _January 13, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.7.3 - _January 4, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.7.2 - _December 23, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.7.1 - _December 17, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.7.0 - _December 16, 2020_ | ||||||
|  |  | ||||||
|  |     * Fix Bancor support of ETH (#88) | ||||||
|  |  | ||||||
|  | ## v3.6.9 - _December 9, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.6.8 - _December 7, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.6.7 - _December 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.6.6 - _November 19, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.6.5 - _November 13, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.6.4 - _November 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
| ## v3.6.3 - _November 3, 2020_ | ## v3.6.3 - _November 3, 2020_ | ||||||
|  |  | ||||||
|     * Dependencies updated |     * Dependencies updated | ||||||
|   | |||||||
| @@ -21,6 +21,7 @@ pragma solidity ^0.5.9; | |||||||
| pragma experimental ABIEncoderV2; | pragma experimental ABIEncoderV2; | ||||||
|  |  | ||||||
| import "@0x/contracts-erc20/contracts/src/interfaces/IERC20Token.sol"; | import "@0x/contracts-erc20/contracts/src/interfaces/IERC20Token.sol"; | ||||||
|  | import "@0x/contracts-erc20/contracts/src/interfaces/IEtherToken.sol"; | ||||||
| import "@0x/contracts-erc20/contracts/src/LibERC20Token.sol"; | import "@0x/contracts-erc20/contracts/src/LibERC20Token.sol"; | ||||||
| import "@0x/contracts-exchange-libs/contracts/src/IWallet.sol"; | import "@0x/contracts-exchange-libs/contracts/src/IWallet.sol"; | ||||||
| import "@0x/contracts-utils/contracts/src/DeploymentConstants.sol"; | import "@0x/contracts-utils/contracts/src/DeploymentConstants.sol"; | ||||||
| @@ -36,6 +37,20 @@ contract BancorBridge is | |||||||
|     struct TransferState { |     struct TransferState { | ||||||
|         address bancorNetworkAddress; |         address bancorNetworkAddress; | ||||||
|         address[] path; |         address[] path; | ||||||
|  |         IEtherToken weth; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /// @dev Bancor ETH pseudo-address. | ||||||
|  |     address constant public BANCOR_ETH_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE; | ||||||
|  |  | ||||||
|  |     // solhint-disable no-empty-blocks | ||||||
|  |     /// @dev Payable fallback to receive ETH from Bancor/WETH. | ||||||
|  |     function () | ||||||
|  |         external | ||||||
|  |         payable | ||||||
|  |     { | ||||||
|  |         // Poor man's receive in 0.5.9 | ||||||
|  |         require(msg.data.length == 0); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /// @dev Callback for `IERC20Bridge`. Tries to buy `amount` of |     /// @dev Callback for `IERC20Bridge`. Tries to buy `amount` of | ||||||
| @@ -60,7 +75,6 @@ contract BancorBridge is | |||||||
|     { |     { | ||||||
|         // hold variables to get around stack depth limitations |         // hold variables to get around stack depth limitations | ||||||
|         TransferState memory state; |         TransferState memory state; | ||||||
|  |  | ||||||
|         // Decode the bridge data. |         // Decode the bridge data. | ||||||
|         ( |         ( | ||||||
|             state.path, |             state.path, | ||||||
| @@ -68,34 +82,42 @@ contract BancorBridge is | |||||||
|         // solhint-disable indent |         // solhint-disable indent | ||||||
|         ) = abi.decode(bridgeData, (address[], address)); |         ) = abi.decode(bridgeData, (address[], address)); | ||||||
|         // solhint-enable indent |         // solhint-enable indent | ||||||
|  |         state.weth = IEtherToken(_getWethAddress()); | ||||||
|  |  | ||||||
|         require(state.path.length > 0, "BancorBridge/PATH_MUST_EXIST"); |         require(state.path.length >= 2, "BancorBridge/PATH_LENGTH_MUST_BE_GREATER_THAN_TWO"); | ||||||
|         // Just transfer the tokens if they're the same. |  | ||||||
|         if (state.path[0] == toTokenAddress) { |         // Grant an allowance to the Bancor Network to spend `fromTokenAddress` token. | ||||||
|             LibERC20Token.transfer(state.path[0], to, amount); |         uint256 fromTokenBalance; | ||||||
|             return BRIDGE_SUCCESS; |         uint256 payableAmount = 0; | ||||||
|  |         // If it's ETH in the path then withdraw from WETH | ||||||
|  |         // The Bancor path will have ETH as the 0xeee address | ||||||
|  |         // Bancor expects to be paid in ETH not WETH | ||||||
|  |         if (state.path[0] == BANCOR_ETH_ADDRESS) { | ||||||
|  |             fromTokenBalance = state.weth.balanceOf(address(this)); | ||||||
|  |             state.weth.withdraw(fromTokenBalance); | ||||||
|  |             payableAmount = fromTokenBalance; | ||||||
|  |         } else { | ||||||
|  |             fromTokenBalance = IERC20Token(state.path[0]).balanceOf(address(this)); | ||||||
|  |             LibERC20Token.approveIfBelow(state.path[0], state.bancorNetworkAddress, fromTokenBalance); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         // Otherwise use Bancor to convert |  | ||||||
|         require(state.path.length > 2, "BancorBridge/PATH_LENGTH_MUST_BE_GREATER_THAN_TWO"); |  | ||||||
|         require(state.path[state.path.length - 1] == toTokenAddress, "BancorBridge/LAST_ELEMENT_OF_PATH_MUST_MATCH_OUTPUT_TOKEN"); |  | ||||||
|          |  | ||||||
|         // // Grant an allowance to the Bancor Network to spend `fromTokenAddress` token. |  | ||||||
|         uint256 fromTokenBalance = IERC20Token(state.path[0]).balanceOf(address(this)); |  | ||||||
|         LibERC20Token.approveIfBelow(state.path[0], state.bancorNetworkAddress, fromTokenBalance); |  | ||||||
|  |  | ||||||
|         // Convert the tokens |         // Convert the tokens | ||||||
|         uint256 boughtAmount = IBancorNetwork(state.bancorNetworkAddress).convertByPath( |         uint256 boughtAmount = IBancorNetwork(state.bancorNetworkAddress).convertByPath.value(payableAmount)( | ||||||
|             state.path, // path originating with source token and terminating in destination token |             state.path, // path originating with source token and terminating in destination token | ||||||
|             fromTokenBalance, // amount of source token to trade |             fromTokenBalance, // amount of source token to trade | ||||||
|             amount, // minimum amount of destination token expected to receive |             amount, // minimum amount of destination token expected to receive | ||||||
|             to, // beneficiary |             state.path[state.path.length-1] == BANCOR_ETH_ADDRESS ? address(this) : to, // beneficiary | ||||||
|             address(0), // affiliateAccount; no fee paid |             address(0), // affiliateAccount; no fee paid | ||||||
|             0 // affiliateFee; no fee paid |             0 // affiliateFee; no fee paid | ||||||
|         ); |         ); | ||||||
|  |  | ||||||
|  |         if (state.path[state.path.length-1] == BANCOR_ETH_ADDRESS) { | ||||||
|  |             state.weth.deposit.value(boughtAmount)(); | ||||||
|  |             state.weth.transfer(to, boughtAmount); | ||||||
|  |         } | ||||||
|  |  | ||||||
|         emit ERC20BridgeTransfer( |         emit ERC20BridgeTransfer( | ||||||
|             state.path[0], // fromTokenAddress |             state.path[0] == BANCOR_ETH_ADDRESS ? address(state.weth) : state.path[0], | ||||||
|             toTokenAddress, |             toTokenAddress, | ||||||
|             fromTokenBalance, |             fromTokenBalance, | ||||||
|             boughtAmount, |             boughtAmount, | ||||||
| @@ -118,5 +140,5 @@ contract BancorBridge is | |||||||
|     { |     { | ||||||
|         return LEGACY_WALLET_MAGIC_VALUE; |         return LEGACY_WALLET_MAGIC_VALUE; | ||||||
|     } |     } | ||||||
|      |  | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										136
									
								
								contracts/asset-proxy/contracts/src/bridges/CryptoComBridge.sol
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										136
									
								
								contracts/asset-proxy/contracts/src/bridges/CryptoComBridge.sol
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,136 @@ | |||||||
|  | /* | ||||||
|  |  | ||||||
|  |   Copyright 2020 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.9; | ||||||
|  | pragma experimental ABIEncoderV2; | ||||||
|  |  | ||||||
|  | import "@0x/contracts-erc20/contracts/src/interfaces/IERC20Token.sol"; | ||||||
|  | import "@0x/contracts-erc20/contracts/src/interfaces/IEtherToken.sol"; | ||||||
|  | import "@0x/contracts-erc20/contracts/src/LibERC20Token.sol"; | ||||||
|  | import "@0x/contracts-exchange-libs/contracts/src/IWallet.sol"; | ||||||
|  | import "@0x/contracts-utils/contracts/src/LibAddressArray.sol"; | ||||||
|  | import "@0x/contracts-utils/contracts/src/DeploymentConstants.sol"; | ||||||
|  | import "../interfaces/IUniswapV2Router01.sol"; | ||||||
|  | import "../interfaces/IERC20Bridge.sol"; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | // solhint-disable space-after-comma | ||||||
|  | // solhint-disable not-rely-on-time | ||||||
|  | contract CryptoComBridge is | ||||||
|  |     IERC20Bridge, | ||||||
|  |     IWallet, | ||||||
|  |     DeploymentConstants | ||||||
|  | { | ||||||
|  |     struct TransferState { | ||||||
|  |         address[] path; | ||||||
|  |         address router; | ||||||
|  |         uint256 fromTokenBalance; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /// @dev Callback for `IERC20Bridge`. Tries to buy `amount` of | ||||||
|  |     ///      `toTokenAddress` tokens by selling the entirety of the `fromTokenAddress` | ||||||
|  |     ///      token encoded in the bridge data. | ||||||
|  |     /// @param toTokenAddress The token to buy and transfer to `to`. | ||||||
|  |     /// @param from The maker (this contract). | ||||||
|  |     /// @param to The recipient of the bought tokens. | ||||||
|  |     /// @param amount Minimum amount of `toTokenAddress` tokens to buy. | ||||||
|  |     /// @param bridgeData The abi-encoded path of token addresses. Last element must be toTokenAddress | ||||||
|  |     /// @return success The magic bytes if successful. | ||||||
|  |     function bridgeTransferFrom( | ||||||
|  |         address toTokenAddress, | ||||||
|  |         address from, | ||||||
|  |         address to, | ||||||
|  |         uint256 amount, | ||||||
|  |         bytes calldata bridgeData | ||||||
|  |     ) | ||||||
|  |         external | ||||||
|  |         returns (bytes4 success) | ||||||
|  |     { | ||||||
|  |         // hold variables to get around stack depth limitations | ||||||
|  |         TransferState memory state; | ||||||
|  |  | ||||||
|  |         // Decode the bridge data to get the `fromTokenAddress`. | ||||||
|  |         // solhint-disable indent | ||||||
|  |         (state.path, state.router) = abi.decode(bridgeData, (address[], address)); | ||||||
|  |         // solhint-enable indent | ||||||
|  |  | ||||||
|  |         require(state.path.length >= 2, "CryptoComBridge/PATH_LENGTH_MUST_BE_AT_LEAST_TWO"); | ||||||
|  |         require(state.path[state.path.length - 1] == toTokenAddress, "CryptoComBridge/LAST_ELEMENT_OF_PATH_MUST_MATCH_OUTPUT_TOKEN"); | ||||||
|  |  | ||||||
|  |         // Just transfer the tokens if they're the same. | ||||||
|  |         if (state.path[0] == toTokenAddress) { | ||||||
|  |             LibERC20Token.transfer(state.path[0], to, amount); | ||||||
|  |             return BRIDGE_SUCCESS; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         // Get our balance of `fromTokenAddress` token. | ||||||
|  |         state.fromTokenBalance = IERC20Token(state.path[0]).balanceOf(address(this)); | ||||||
|  |  | ||||||
|  |         // Grant the SushiSwap router an allowance. | ||||||
|  |         LibERC20Token.approveIfBelow( | ||||||
|  |             state.path[0], | ||||||
|  |             state.router, | ||||||
|  |             state.fromTokenBalance | ||||||
|  |         ); | ||||||
|  |  | ||||||
|  |         // Buy as much `toTokenAddress` token with `fromTokenAddress` token | ||||||
|  |         // and transfer it to `to`. | ||||||
|  |         IUniswapV2Router01 router = IUniswapV2Router01(state.router); | ||||||
|  |         uint[] memory amounts = router.swapExactTokensForTokens( | ||||||
|  |              // Sell all tokens we hold. | ||||||
|  |             state.fromTokenBalance, | ||||||
|  |              // Minimum buy amount. | ||||||
|  |             amount, | ||||||
|  |             // Convert `fromTokenAddress` to `toTokenAddress`. | ||||||
|  |             state.path, | ||||||
|  |             // Recipient is `to`. | ||||||
|  |             to, | ||||||
|  |             // Expires after this block. | ||||||
|  |             block.timestamp | ||||||
|  |         ); | ||||||
|  |  | ||||||
|  |         emit ERC20BridgeTransfer( | ||||||
|  |             // input token | ||||||
|  |             state.path[0], | ||||||
|  |             // output token | ||||||
|  |             toTokenAddress, | ||||||
|  |             // input token amount | ||||||
|  |             state.fromTokenBalance, | ||||||
|  |             // output token amount | ||||||
|  |             amounts[amounts.length - 1], | ||||||
|  |             from, | ||||||
|  |             to | ||||||
|  |         ); | ||||||
|  |  | ||||||
|  |         return BRIDGE_SUCCESS; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /// @dev `SignatureType.Wallet` callback, so that this bridge can be the maker | ||||||
|  |     ///      and sign for itself in orders. Always succeeds. | ||||||
|  |     /// @return magicValue Success bytes, always. | ||||||
|  |     function isValidSignature( | ||||||
|  |         bytes32, | ||||||
|  |         bytes calldata | ||||||
|  |     ) | ||||||
|  |         external | ||||||
|  |         view | ||||||
|  |         returns (bytes4 magicValue) | ||||||
|  |     { | ||||||
|  |         return LEGACY_WALLET_MAGIC_VALUE; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -56,11 +56,14 @@ contract KyberBridge is | |||||||
|     uint256 constant private KYBER_RATE_BASE = 10 ** 18; |     uint256 constant private KYBER_RATE_BASE = 10 ** 18; | ||||||
|  |  | ||||||
|     // solhint-disable no-empty-blocks |     // solhint-disable no-empty-blocks | ||||||
|     /// @dev Payable fallback to receive ETH from Kyber. |     /// @dev Payable fallback to receive ETH from Kyber/WETH. | ||||||
|     function () |     function () | ||||||
|         external |         external | ||||||
|         payable |         payable | ||||||
|     {} |     { | ||||||
|  |         // Poor man's receive in 0.5.9 | ||||||
|  |         require(msg.data.length == 0); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     /// @dev Callback for `IKyberBridge`. Tries to buy `amount` of |     /// @dev Callback for `IKyberBridge`. Tries to buy `amount` of | ||||||
|     ///      `toTokenAddress` tokens by selling the entirety of the opposing asset |     ///      `toTokenAddress` tokens by selling the entirety of the opposing asset | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "name": "@0x/contracts-asset-proxy", |     "name": "@0x/contracts-asset-proxy", | ||||||
|     "version": "3.6.3", |     "version": "3.7.5", | ||||||
|     "engines": { |     "engines": { | ||||||
|         "node": ">=6.12" |         "node": ">=6.12" | ||||||
|     }, |     }, | ||||||
| @@ -38,7 +38,7 @@ | |||||||
|         "docs:json": "typedoc --excludePrivate --excludeExternals --excludeProtected --ignoreCompilerErrors --target ES5 --tsconfig typedoc-tsconfig.json --json $JSON_FILE_PATH $PROJECT_FILES" |         "docs:json": "typedoc --excludePrivate --excludeExternals --excludeProtected --ignoreCompilerErrors --target ES5 --tsconfig typedoc-tsconfig.json --json $JSON_FILE_PATH $PROJECT_FILES" | ||||||
|     }, |     }, | ||||||
|     "config": { |     "config": { | ||||||
|         "abis": "./test/generated-artifacts/@(BalancerBridge|BancorBridge|ChaiBridge|CreamBridge|CurveBridge|DODOBridge|DexForwarderBridge|DydxBridge|ERC1155Proxy|ERC20BridgeProxy|ERC20Proxy|ERC721Proxy|Eth2DaiBridge|IAssetData|IAssetProxy|IAssetProxyDispatcher|IAuthorizable|IBalancerPool|IBancorNetwork|IChai|ICurve|IDydx|IDydxBridge|IERC20Bridge|IEth2Dai|IGasToken|IKyberNetworkProxy|IMStable|IMooniswap|IShell|IUniswapExchange|IUniswapExchangeFactory|IUniswapV2Router01|KyberBridge|MStableBridge|MixinAssetProxyDispatcher|MixinAuthorizable|MixinGasToken|MooniswapBridge|MultiAssetProxy|Ownable|ShellBridge|SnowSwapBridge|StaticCallProxy|SushiSwapBridge|SwerveBridge|TestBancorBridge|TestChaiBridge|TestDexForwarderBridge|TestDydxBridge|TestERC20Bridge|TestEth2DaiBridge|TestKyberBridge|TestStaticCallTarget|TestUniswapBridge|TestUniswapV2Bridge|UniswapBridge|UniswapV2Bridge).json", |         "abis": "./test/generated-artifacts/@(BalancerBridge|BancorBridge|ChaiBridge|CreamBridge|CryptoComBridge|CurveBridge|DODOBridge|DexForwarderBridge|DydxBridge|ERC1155Proxy|ERC20BridgeProxy|ERC20Proxy|ERC721Proxy|Eth2DaiBridge|IAssetData|IAssetProxy|IAssetProxyDispatcher|IAuthorizable|IBalancerPool|IBancorNetwork|IChai|ICurve|IDydx|IDydxBridge|IERC20Bridge|IEth2Dai|IGasToken|IKyberNetworkProxy|IMStable|IMooniswap|IShell|IUniswapExchange|IUniswapExchangeFactory|IUniswapV2Router01|KyberBridge|MStableBridge|MixinAssetProxyDispatcher|MixinAuthorizable|MixinGasToken|MooniswapBridge|MultiAssetProxy|Ownable|ShellBridge|SnowSwapBridge|StaticCallProxy|SushiSwapBridge|SwerveBridge|TestBancorBridge|TestChaiBridge|TestDexForwarderBridge|TestDydxBridge|TestERC20Bridge|TestEth2DaiBridge|TestKyberBridge|TestStaticCallTarget|TestUniswapBridge|TestUniswapV2Bridge|UniswapBridge|UniswapV2Bridge).json", | ||||||
|         "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." |         "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." | ||||||
|     }, |     }, | ||||||
|     "repository": { |     "repository": { | ||||||
| @@ -51,13 +51,13 @@ | |||||||
|     }, |     }, | ||||||
|     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/protocol", |     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/protocol", | ||||||
|     "devDependencies": { |     "devDependencies": { | ||||||
|         "@0x/abi-gen": "^5.4.7", |         "@0x/abi-gen": "^5.4.19", | ||||||
|         "@0x/contract-wrappers": "^13.9.4", |         "@0x/contract-wrappers": "^13.12.2", | ||||||
|         "@0x/contracts-gen": "2.0.18", |         "@0x/contracts-gen": "^2.0.30", | ||||||
|         "@0x/contracts-test-utils": "^5.3.9", |         "@0x/contracts-test-utils": "^5.3.20", | ||||||
|         "@0x/contracts-utils": "^4.5.6", |         "@0x/contracts-utils": "^4.7.2", | ||||||
|         "@0x/dev-utils": "^4.0.1", |         "@0x/dev-utils": "^4.2.1", | ||||||
|         "@0x/sol-compiler": "^4.2.7", |         "@0x/sol-compiler": "^4.5.2", | ||||||
|         "@0x/ts-doc-gen": "^0.0.28", |         "@0x/ts-doc-gen": "^0.0.28", | ||||||
|         "@0x/tslint-config": "^4.1.3", |         "@0x/tslint-config": "^4.1.3", | ||||||
|         "@types/lodash": "4.14.104", |         "@types/lodash": "4.14.104", | ||||||
| @@ -79,17 +79,17 @@ | |||||||
|         "typescript": "3.0.1" |         "typescript": "3.0.1" | ||||||
|     }, |     }, | ||||||
|     "dependencies": { |     "dependencies": { | ||||||
|         "@0x/base-contract": "^6.2.11", |         "@0x/base-contract": "^6.2.18", | ||||||
|         "@0x/contracts-erc1155": "^2.1.12", |         "@0x/contracts-erc1155": "^2.1.23", | ||||||
|         "@0x/contracts-erc20": "^3.2.6", |         "@0x/contracts-erc20": "^3.3.2", | ||||||
|         "@0x/contracts-erc721": "^3.1.12", |         "@0x/contracts-erc721": "^3.1.23", | ||||||
|         "@0x/contracts-exchange-libs": "^4.3.12", |         "@0x/contracts-exchange-libs": "^4.3.23", | ||||||
|         "@0x/order-utils": "^10.4.4", |         "@0x/order-utils": "^10.4.15", | ||||||
|         "@0x/types": "^3.3.0", |         "@0x/types": "^3.3.1", | ||||||
|         "@0x/typescript-typings": "^5.1.5", |         "@0x/typescript-typings": "^5.1.6", | ||||||
|         "@0x/utils": "^6.1.0", |         "@0x/utils": "^6.2.0", | ||||||
|         "@0x/web3-wrapper": "^7.2.8", |         "@0x/web3-wrapper": "^7.4.1", | ||||||
|         "ethereum-types": "^3.3.3", |         "ethereum-types": "^3.4.0", | ||||||
|         "lodash": "^4.17.11" |         "lodash": "^4.17.11" | ||||||
|     }, |     }, | ||||||
|     "publishConfig": { |     "publishConfig": { | ||||||
|   | |||||||
| @@ -9,6 +9,7 @@ import * as BalancerBridge from '../generated-artifacts/BalancerBridge.json'; | |||||||
| import * as BancorBridge from '../generated-artifacts/BancorBridge.json'; | import * as BancorBridge from '../generated-artifacts/BancorBridge.json'; | ||||||
| import * as ChaiBridge from '../generated-artifacts/ChaiBridge.json'; | import * as ChaiBridge from '../generated-artifacts/ChaiBridge.json'; | ||||||
| import * as CreamBridge from '../generated-artifacts/CreamBridge.json'; | import * as CreamBridge from '../generated-artifacts/CreamBridge.json'; | ||||||
|  | import * as CryptoComBridge from '../generated-artifacts/CryptoComBridge.json'; | ||||||
| import * as CurveBridge from '../generated-artifacts/CurveBridge.json'; | import * as CurveBridge from '../generated-artifacts/CurveBridge.json'; | ||||||
| import * as DexForwarderBridge from '../generated-artifacts/DexForwarderBridge.json'; | import * as DexForwarderBridge from '../generated-artifacts/DexForwarderBridge.json'; | ||||||
| import * as DODOBridge from '../generated-artifacts/DODOBridge.json'; | import * as DODOBridge from '../generated-artifacts/DODOBridge.json'; | ||||||
| @@ -77,6 +78,7 @@ export const artifacts = { | |||||||
|     BancorBridge: BancorBridge as ContractArtifact, |     BancorBridge: BancorBridge as ContractArtifact, | ||||||
|     ChaiBridge: ChaiBridge as ContractArtifact, |     ChaiBridge: ChaiBridge as ContractArtifact, | ||||||
|     CreamBridge: CreamBridge as ContractArtifact, |     CreamBridge: CreamBridge as ContractArtifact, | ||||||
|  |     CryptoComBridge: CryptoComBridge as ContractArtifact, | ||||||
|     CurveBridge: CurveBridge as ContractArtifact, |     CurveBridge: CurveBridge as ContractArtifact, | ||||||
|     DODOBridge: DODOBridge as ContractArtifact, |     DODOBridge: DODOBridge as ContractArtifact, | ||||||
|     DexForwarderBridge: DexForwarderBridge as ContractArtifact, |     DexForwarderBridge: DexForwarderBridge as ContractArtifact, | ||||||
|   | |||||||
| @@ -7,6 +7,7 @@ export * from '../generated-wrappers/balancer_bridge'; | |||||||
| export * from '../generated-wrappers/bancor_bridge'; | export * from '../generated-wrappers/bancor_bridge'; | ||||||
| export * from '../generated-wrappers/chai_bridge'; | export * from '../generated-wrappers/chai_bridge'; | ||||||
| export * from '../generated-wrappers/cream_bridge'; | export * from '../generated-wrappers/cream_bridge'; | ||||||
|  | export * from '../generated-wrappers/crypto_com_bridge'; | ||||||
| export * from '../generated-wrappers/curve_bridge'; | export * from '../generated-wrappers/curve_bridge'; | ||||||
| export * from '../generated-wrappers/d_o_d_o_bridge'; | export * from '../generated-wrappers/d_o_d_o_bridge'; | ||||||
| export * from '../generated-wrappers/dex_forwarder_bridge'; | export * from '../generated-wrappers/dex_forwarder_bridge'; | ||||||
|   | |||||||
| @@ -9,6 +9,7 @@ import * as BalancerBridge from '../test/generated-artifacts/BalancerBridge.json | |||||||
| import * as BancorBridge from '../test/generated-artifacts/BancorBridge.json'; | import * as BancorBridge from '../test/generated-artifacts/BancorBridge.json'; | ||||||
| import * as ChaiBridge from '../test/generated-artifacts/ChaiBridge.json'; | import * as ChaiBridge from '../test/generated-artifacts/ChaiBridge.json'; | ||||||
| import * as CreamBridge from '../test/generated-artifacts/CreamBridge.json'; | import * as CreamBridge from '../test/generated-artifacts/CreamBridge.json'; | ||||||
|  | import * as CryptoComBridge from '../test/generated-artifacts/CryptoComBridge.json'; | ||||||
| import * as CurveBridge from '../test/generated-artifacts/CurveBridge.json'; | import * as CurveBridge from '../test/generated-artifacts/CurveBridge.json'; | ||||||
| import * as DexForwarderBridge from '../test/generated-artifacts/DexForwarderBridge.json'; | import * as DexForwarderBridge from '../test/generated-artifacts/DexForwarderBridge.json'; | ||||||
| import * as DODOBridge from '../test/generated-artifacts/DODOBridge.json'; | import * as DODOBridge from '../test/generated-artifacts/DODOBridge.json'; | ||||||
| @@ -77,6 +78,7 @@ export const artifacts = { | |||||||
|     BancorBridge: BancorBridge as ContractArtifact, |     BancorBridge: BancorBridge as ContractArtifact, | ||||||
|     ChaiBridge: ChaiBridge as ContractArtifact, |     ChaiBridge: ChaiBridge as ContractArtifact, | ||||||
|     CreamBridge: CreamBridge as ContractArtifact, |     CreamBridge: CreamBridge as ContractArtifact, | ||||||
|  |     CryptoComBridge: CryptoComBridge as ContractArtifact, | ||||||
|     CurveBridge: CurveBridge as ContractArtifact, |     CurveBridge: CurveBridge as ContractArtifact, | ||||||
|     DODOBridge: DODOBridge as ContractArtifact, |     DODOBridge: DODOBridge as ContractArtifact, | ||||||
|     DexForwarderBridge: DexForwarderBridge as ContractArtifact, |     DexForwarderBridge: DexForwarderBridge as ContractArtifact, | ||||||
|   | |||||||
| @@ -12,13 +12,11 @@ import { DecodedLogs } from 'ethereum-types'; | |||||||
| import * as _ from 'lodash'; | import * as _ from 'lodash'; | ||||||
|  |  | ||||||
| import { artifacts } from './artifacts'; | import { artifacts } from './artifacts'; | ||||||
|  |  | ||||||
| import { TestBancorBridgeContract } from './generated-wrappers/test_bancor_bridge'; | import { TestBancorBridgeContract } from './generated-wrappers/test_bancor_bridge'; | ||||||
| import { | import { | ||||||
|     TestBancorBridgeConvertByPathInputEventArgs as ConvertByPathArgs, |     TestBancorBridgeConvertByPathInputEventArgs as ConvertByPathArgs, | ||||||
|     TestBancorBridgeEvents as ContractEvents, |     TestBancorBridgeEvents as ContractEvents, | ||||||
|     TestBancorBridgeTokenApproveEventArgs as TokenApproveArgs, |     TestBancorBridgeTokenApproveEventArgs as TokenApproveArgs, | ||||||
|     TestBancorBridgeTokenTransferEventArgs as TokenTransferArgs, |  | ||||||
| } from './wrappers'; | } from './wrappers'; | ||||||
|  |  | ||||||
| blockchainTests.resets('Bancor unit tests', env => { | blockchainTests.resets('Bancor unit tests', env => { | ||||||
| @@ -128,24 +126,6 @@ blockchainTests.resets('Bancor unit tests', env => { | |||||||
|             expect(result).to.eq(AssetProxyId.ERC20Bridge); |             expect(result).to.eq(AssetProxyId.ERC20Bridge); | ||||||
|         }); |         }); | ||||||
|  |  | ||||||
|         it('performs transfer when both tokens are the same', async () => { |  | ||||||
|             const createTokenFn = testContract.createToken(constants.NULL_ADDRESS); |  | ||||||
|             const tokenAddress = await createTokenFn.callAsync(); |  | ||||||
|             await createTokenFn.awaitTransactionSuccessAsync(); |  | ||||||
|  |  | ||||||
|             const { opts, result, logs } = await transferFromAsync({ |  | ||||||
|                 tokenAddressesPath: [tokenAddress, tokenAddress], |  | ||||||
|             }); |  | ||||||
|             expect(result).to.eq(AssetProxyId.ERC20Bridge, 'asset proxy id'); |  | ||||||
|             const transfers = filterLogsToArguments<TokenTransferArgs>(logs, ContractEvents.TokenTransfer); |  | ||||||
|  |  | ||||||
|             expect(transfers.length).to.eq(1); |  | ||||||
|             expect(transfers[0].token).to.eq(tokenAddress, 'input token address'); |  | ||||||
|             expect(transfers[0].from).to.eq(testContract.address); |  | ||||||
|             expect(transfers[0].to).to.eq(opts.toAddress, 'recipient address'); |  | ||||||
|             expect(transfers[0].amount).to.bignumber.eq(opts.amount, 'amount'); |  | ||||||
|         }); |  | ||||||
|  |  | ||||||
|         describe('token -> token', async () => { |         describe('token -> token', async () => { | ||||||
|             it('calls BancorNetwork.convertByPath()', async () => { |             it('calls BancorNetwork.convertByPath()', async () => { | ||||||
|                 const { opts, result, logs } = await transferFromAsync(); |                 const { opts, result, logs } = await transferFromAsync(); | ||||||
|   | |||||||
| @@ -7,6 +7,7 @@ export * from '../test/generated-wrappers/balancer_bridge'; | |||||||
| export * from '../test/generated-wrappers/bancor_bridge'; | export * from '../test/generated-wrappers/bancor_bridge'; | ||||||
| export * from '../test/generated-wrappers/chai_bridge'; | export * from '../test/generated-wrappers/chai_bridge'; | ||||||
| export * from '../test/generated-wrappers/cream_bridge'; | export * from '../test/generated-wrappers/cream_bridge'; | ||||||
|  | export * from '../test/generated-wrappers/crypto_com_bridge'; | ||||||
| export * from '../test/generated-wrappers/curve_bridge'; | export * from '../test/generated-wrappers/curve_bridge'; | ||||||
| export * from '../test/generated-wrappers/d_o_d_o_bridge'; | export * from '../test/generated-wrappers/d_o_d_o_bridge'; | ||||||
| export * from '../test/generated-wrappers/dex_forwarder_bridge'; | export * from '../test/generated-wrappers/dex_forwarder_bridge'; | ||||||
|   | |||||||
| @@ -7,6 +7,7 @@ | |||||||
|         "generated-artifacts/BancorBridge.json", |         "generated-artifacts/BancorBridge.json", | ||||||
|         "generated-artifacts/ChaiBridge.json", |         "generated-artifacts/ChaiBridge.json", | ||||||
|         "generated-artifacts/CreamBridge.json", |         "generated-artifacts/CreamBridge.json", | ||||||
|  |         "generated-artifacts/CryptoComBridge.json", | ||||||
|         "generated-artifacts/CurveBridge.json", |         "generated-artifacts/CurveBridge.json", | ||||||
|         "generated-artifacts/DODOBridge.json", |         "generated-artifacts/DODOBridge.json", | ||||||
|         "generated-artifacts/DexForwarderBridge.json", |         "generated-artifacts/DexForwarderBridge.json", | ||||||
| @@ -65,6 +66,7 @@ | |||||||
|         "test/generated-artifacts/BancorBridge.json", |         "test/generated-artifacts/BancorBridge.json", | ||||||
|         "test/generated-artifacts/ChaiBridge.json", |         "test/generated-artifacts/ChaiBridge.json", | ||||||
|         "test/generated-artifacts/CreamBridge.json", |         "test/generated-artifacts/CreamBridge.json", | ||||||
|  |         "test/generated-artifacts/CryptoComBridge.json", | ||||||
|         "test/generated-artifacts/CurveBridge.json", |         "test/generated-artifacts/CurveBridge.json", | ||||||
|         "test/generated-artifacts/DODOBridge.json", |         "test/generated-artifacts/DODOBridge.json", | ||||||
|         "test/generated-artifacts/DexForwarderBridge.json", |         "test/generated-artifacts/DexForwarderBridge.json", | ||||||
|   | |||||||
| @@ -1,4 +1,112 @@ | |||||||
| [ | [ | ||||||
|  |     { | ||||||
|  |         "timestamp": 1611648096, | ||||||
|  |         "version": "1.1.23", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1610510890, | ||||||
|  |         "version": "1.1.22", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1609802516, | ||||||
|  |         "version": "1.1.21", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608692071, | ||||||
|  |         "version": "1.1.20", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608245516, | ||||||
|  |         "version": "1.1.19", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608105788, | ||||||
|  |         "version": "1.1.18", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607485227, | ||||||
|  |         "version": "1.1.17", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607381756, | ||||||
|  |         "version": "1.1.16", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1606961263, | ||||||
|  |         "version": "1.1.15", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605763885, | ||||||
|  |         "version": "1.1.14", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605302002, | ||||||
|  |         "version": "1.1.13", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1604385937, | ||||||
|  |         "version": "1.1.12", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|         "timestamp": 1604376968, |         "timestamp": 1604376968, | ||||||
|         "version": "1.1.11", |         "version": "1.1.11", | ||||||
|   | |||||||
| @@ -5,6 +5,54 @@ Edit the package's CHANGELOG.json file only. | |||||||
|  |  | ||||||
| CHANGELOG | CHANGELOG | ||||||
|  |  | ||||||
|  | ## v1.1.23 - _January 26, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.1.22 - _January 13, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.1.21 - _January 4, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.1.20 - _December 23, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.1.19 - _December 17, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.1.18 - _December 16, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.1.17 - _December 9, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.1.16 - _December 7, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.1.15 - _December 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.1.14 - _November 19, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.1.13 - _November 13, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.1.12 - _November 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
| ## v1.1.11 - _November 3, 2020_ | ## v1.1.11 - _November 3, 2020_ | ||||||
|  |  | ||||||
|     * Dependencies updated |     * Dependencies updated | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "name": "@0x/contracts-broker", |     "name": "@0x/contracts-broker", | ||||||
|     "version": "1.1.11", |     "version": "1.1.23", | ||||||
|     "engines": { |     "engines": { | ||||||
|         "node": ">=6.12" |         "node": ">=6.12" | ||||||
|     }, |     }, | ||||||
| @@ -51,20 +51,20 @@ | |||||||
|     }, |     }, | ||||||
|     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions", |     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions", | ||||||
|     "devDependencies": { |     "devDependencies": { | ||||||
|         "@0x/abi-gen": "^5.4.7", |         "@0x/abi-gen": "^5.4.19", | ||||||
|         "@0x/contracts-asset-proxy": "^3.6.3", |         "@0x/contracts-asset-proxy": "^3.7.5", | ||||||
|         "@0x/contracts-erc20": "^3.2.6", |         "@0x/contracts-erc20": "^3.3.2", | ||||||
|         "@0x/contracts-erc721": "^3.1.12", |         "@0x/contracts-erc721": "^3.1.23", | ||||||
|         "@0x/contracts-exchange": "^3.2.12", |         "@0x/contracts-exchange": "^3.2.24", | ||||||
|         "@0x/contracts-exchange-libs": "^4.3.12", |         "@0x/contracts-exchange-libs": "^4.3.23", | ||||||
|         "@0x/contracts-gen": "2.0.18", |         "@0x/contracts-gen": "^2.0.30", | ||||||
|         "@0x/contracts-test-utils": "^5.3.9", |         "@0x/contracts-test-utils": "^5.3.20", | ||||||
|         "@0x/contracts-utils": "^4.5.6", |         "@0x/contracts-utils": "^4.7.2", | ||||||
|         "@0x/sol-compiler": "^4.2.7", |         "@0x/sol-compiler": "^4.5.2", | ||||||
|         "@0x/ts-doc-gen": "^0.0.28", |         "@0x/ts-doc-gen": "^0.0.28", | ||||||
|         "@0x/tslint-config": "^4.1.3", |         "@0x/tslint-config": "^4.1.3", | ||||||
|         "@0x/types": "^3.3.0", |         "@0x/types": "^3.3.1", | ||||||
|         "@0x/web3-wrapper": "^7.2.8", |         "@0x/web3-wrapper": "^7.4.1", | ||||||
|         "@types/lodash": "4.14.104", |         "@types/lodash": "4.14.104", | ||||||
|         "@types/mocha": "^5.2.7", |         "@types/mocha": "^5.2.7", | ||||||
|         "@types/node": "12.12.54", |         "@types/node": "12.12.54", | ||||||
| @@ -84,11 +84,11 @@ | |||||||
|         "typescript": "3.0.1" |         "typescript": "3.0.1" | ||||||
|     }, |     }, | ||||||
|     "dependencies": { |     "dependencies": { | ||||||
|         "@0x/base-contract": "^6.2.11", |         "@0x/base-contract": "^6.2.18", | ||||||
|         "@0x/order-utils": "^10.4.4", |         "@0x/order-utils": "^10.4.15", | ||||||
|         "@0x/typescript-typings": "^5.1.5", |         "@0x/typescript-typings": "^5.1.6", | ||||||
|         "@0x/utils": "^6.1.0", |         "@0x/utils": "^6.2.0", | ||||||
|         "ethereum-types": "^3.3.3" |         "ethereum-types": "^3.4.0" | ||||||
|     }, |     }, | ||||||
|     "publishConfig": { |     "publishConfig": { | ||||||
|         "access": "public" |         "access": "public" | ||||||
|   | |||||||
| @@ -1,4 +1,112 @@ | |||||||
| [ | [ | ||||||
|  |     { | ||||||
|  |         "timestamp": 1611648096, | ||||||
|  |         "version": "3.1.24", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1610510890, | ||||||
|  |         "version": "3.1.23", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1609802516, | ||||||
|  |         "version": "3.1.22", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608692071, | ||||||
|  |         "version": "3.1.21", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608245516, | ||||||
|  |         "version": "3.1.20", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608105788, | ||||||
|  |         "version": "3.1.19", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607485227, | ||||||
|  |         "version": "3.1.18", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607381756, | ||||||
|  |         "version": "3.1.17", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1606961263, | ||||||
|  |         "version": "3.1.16", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605763885, | ||||||
|  |         "version": "3.1.15", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605302002, | ||||||
|  |         "version": "3.1.14", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1604385937, | ||||||
|  |         "version": "3.1.13", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|         "timestamp": 1604376968, |         "timestamp": 1604376968, | ||||||
|         "version": "3.1.12", |         "version": "3.1.12", | ||||||
|   | |||||||
| @@ -5,6 +5,54 @@ Edit the package's CHANGELOG.json file only. | |||||||
|  |  | ||||||
| CHANGELOG | CHANGELOG | ||||||
|  |  | ||||||
|  | ## v3.1.24 - _January 26, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.1.23 - _January 13, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.1.22 - _January 4, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.1.21 - _December 23, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.1.20 - _December 17, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.1.19 - _December 16, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.1.18 - _December 9, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.1.17 - _December 7, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.1.16 - _December 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.1.15 - _November 19, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.1.14 - _November 13, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.1.13 - _November 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
| ## v3.1.12 - _November 3, 2020_ | ## v3.1.12 - _November 3, 2020_ | ||||||
|  |  | ||||||
|     * Dependencies updated |     * Dependencies updated | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "name": "@0x/contracts-coordinator", |     "name": "@0x/contracts-coordinator", | ||||||
|     "version": "3.1.12", |     "version": "3.1.24", | ||||||
|     "engines": { |     "engines": { | ||||||
|         "node": ">=6.12" |         "node": ">=6.12" | ||||||
|     }, |     }, | ||||||
| @@ -52,17 +52,17 @@ | |||||||
|     }, |     }, | ||||||
|     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions", |     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions", | ||||||
|     "devDependencies": { |     "devDependencies": { | ||||||
|         "@0x/abi-gen": "^5.4.7", |         "@0x/abi-gen": "^5.4.19", | ||||||
|         "@0x/contracts-asset-proxy": "^3.6.3", |         "@0x/contracts-asset-proxy": "^3.7.5", | ||||||
|         "@0x/contracts-dev-utils": "^1.3.10", |         "@0x/contracts-dev-utils": "^1.3.22", | ||||||
|         "@0x/contracts-erc20": "^3.2.6", |         "@0x/contracts-erc20": "^3.3.2", | ||||||
|         "@0x/contracts-gen": "2.0.18", |         "@0x/contracts-gen": "^2.0.30", | ||||||
|         "@0x/dev-utils": "^4.0.1", |         "@0x/dev-utils": "^4.2.1", | ||||||
|         "@0x/order-utils": "^10.4.4", |         "@0x/order-utils": "^10.4.15", | ||||||
|         "@0x/sol-compiler": "^4.2.7", |         "@0x/sol-compiler": "^4.5.2", | ||||||
|         "@0x/ts-doc-gen": "^0.0.28", |         "@0x/ts-doc-gen": "^0.0.28", | ||||||
|         "@0x/tslint-config": "^4.1.3", |         "@0x/tslint-config": "^4.1.3", | ||||||
|         "@0x/web3-wrapper": "^7.2.8", |         "@0x/web3-wrapper": "^7.4.1", | ||||||
|         "@types/lodash": "4.14.104", |         "@types/lodash": "4.14.104", | ||||||
|         "@types/mocha": "^5.2.7", |         "@types/mocha": "^5.2.7", | ||||||
|         "@types/node": "12.12.54", |         "@types/node": "12.12.54", | ||||||
| @@ -82,17 +82,17 @@ | |||||||
|         "typescript": "3.0.1" |         "typescript": "3.0.1" | ||||||
|     }, |     }, | ||||||
|     "dependencies": { |     "dependencies": { | ||||||
|         "@0x/assert": "^3.0.17", |         "@0x/assert": "^3.0.21", | ||||||
|         "@0x/base-contract": "^6.2.11", |         "@0x/base-contract": "^6.2.18", | ||||||
|         "@0x/contract-addresses": "^5.1.0", |         "@0x/contract-addresses": "^5.9.0", | ||||||
|         "@0x/contracts-exchange": "^3.2.12", |         "@0x/contracts-exchange": "^3.2.24", | ||||||
|         "@0x/contracts-test-utils": "^5.3.9", |         "@0x/contracts-test-utils": "^5.3.20", | ||||||
|         "@0x/contracts-utils": "^4.5.6", |         "@0x/contracts-utils": "^4.7.2", | ||||||
|         "@0x/json-schemas": "^5.3.3", |         "@0x/json-schemas": "^5.4.1", | ||||||
|         "@0x/types": "^3.3.0", |         "@0x/types": "^3.3.1", | ||||||
|         "@0x/typescript-typings": "^5.1.5", |         "@0x/typescript-typings": "^5.1.6", | ||||||
|         "@0x/utils": "^6.1.0", |         "@0x/utils": "^6.2.0", | ||||||
|         "ethereum-types": "^3.3.3", |         "ethereum-types": "^3.4.0", | ||||||
|         "http-status-codes": "^1.3.2" |         "http-status-codes": "^1.3.2" | ||||||
|     }, |     }, | ||||||
|     "publishConfig": { |     "publishConfig": { | ||||||
|   | |||||||
| @@ -1,4 +1,112 @@ | |||||||
| [ | [ | ||||||
|  |     { | ||||||
|  |         "timestamp": 1611648096, | ||||||
|  |         "version": "1.3.22", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1610510890, | ||||||
|  |         "version": "1.3.21", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1609802516, | ||||||
|  |         "version": "1.3.20", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608692071, | ||||||
|  |         "version": "1.3.19", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608245516, | ||||||
|  |         "version": "1.3.18", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608105788, | ||||||
|  |         "version": "1.3.17", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607485227, | ||||||
|  |         "version": "1.3.16", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607381756, | ||||||
|  |         "version": "1.3.15", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1606961263, | ||||||
|  |         "version": "1.3.14", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605763885, | ||||||
|  |         "version": "1.3.13", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605302002, | ||||||
|  |         "version": "1.3.12", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1604385937, | ||||||
|  |         "version": "1.3.11", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|         "timestamp": 1604376968, |         "timestamp": 1604376968, | ||||||
|         "version": "1.3.10", |         "version": "1.3.10", | ||||||
|   | |||||||
| @@ -5,6 +5,54 @@ Edit the package's CHANGELOG.json file only. | |||||||
|  |  | ||||||
| CHANGELOG | CHANGELOG | ||||||
|  |  | ||||||
|  | ## v1.3.22 - _January 26, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.3.21 - _January 13, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.3.20 - _January 4, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.3.19 - _December 23, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.3.18 - _December 17, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.3.17 - _December 16, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.3.16 - _December 9, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.3.15 - _December 7, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.3.14 - _December 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.3.13 - _November 19, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.3.12 - _November 13, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.3.11 - _November 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
| ## v1.3.10 - _November 3, 2020_ | ## v1.3.10 - _November 3, 2020_ | ||||||
|  |  | ||||||
|     * Dependencies updated |     * Dependencies updated | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "name": "@0x/contracts-dev-utils", |     "name": "@0x/contracts-dev-utils", | ||||||
|     "version": "1.3.10", |     "version": "1.3.22", | ||||||
|     "engines": { |     "engines": { | ||||||
|         "node": ">=6.12" |         "node": ">=6.12" | ||||||
|     }, |     }, | ||||||
| @@ -41,18 +41,18 @@ | |||||||
|     }, |     }, | ||||||
|     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/dev-utils", |     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/dev-utils", | ||||||
|     "devDependencies": { |     "devDependencies": { | ||||||
|         "@0x/abi-gen": "^5.4.7", |         "@0x/abi-gen": "^5.4.19", | ||||||
|         "@0x/assert": "^3.0.17", |         "@0x/assert": "^3.0.21", | ||||||
|         "@0x/contracts-asset-proxy": "^3.6.3", |         "@0x/contracts-asset-proxy": "^3.7.5", | ||||||
|         "@0x/contracts-erc20": "^3.2.6", |         "@0x/contracts-erc20": "^3.3.2", | ||||||
|         "@0x/contracts-gen": "2.0.18", |         "@0x/contracts-gen": "^2.0.30", | ||||||
|         "@0x/contracts-test-utils": "^5.3.9", |         "@0x/contracts-test-utils": "^5.3.20", | ||||||
|         "@0x/sol-compiler": "^4.2.7", |         "@0x/sol-compiler": "^4.5.2", | ||||||
|         "@0x/ts-doc-gen": "^0.0.28", |         "@0x/ts-doc-gen": "^0.0.28", | ||||||
|         "@0x/tslint-config": "^4.1.3", |         "@0x/tslint-config": "^4.1.3", | ||||||
|         "@0x/types": "^3.3.0", |         "@0x/types": "^3.3.1", | ||||||
|         "@0x/utils": "^6.1.0", |         "@0x/utils": "^6.2.0", | ||||||
|         "ethereum-types": "^3.3.3", |         "ethereum-types": "^3.4.0", | ||||||
|         "ethers": "~4.0.4", |         "ethers": "~4.0.4", | ||||||
|         "npm-run-all": "^4.1.2", |         "npm-run-all": "^4.1.2", | ||||||
|         "shx": "^0.2.2", |         "shx": "^0.2.2", | ||||||
| @@ -63,7 +63,7 @@ | |||||||
|         "typescript": "3.0.1" |         "typescript": "3.0.1" | ||||||
|     }, |     }, | ||||||
|     "dependencies": { |     "dependencies": { | ||||||
|         "@0x/base-contract": "^6.2.11", |         "@0x/base-contract": "^6.2.18", | ||||||
|         "@types/node": "12.12.54" |         "@types/node": "12.12.54" | ||||||
|     }, |     }, | ||||||
|     "publishConfig": { |     "publishConfig": { | ||||||
|   | |||||||
| @@ -1,4 +1,103 @@ | |||||||
| [ | [ | ||||||
|  |     { | ||||||
|  |         "timestamp": 1611648096, | ||||||
|  |         "version": "2.1.23", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1610510890, | ||||||
|  |         "version": "2.1.22", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1609802516, | ||||||
|  |         "version": "2.1.21", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608692071, | ||||||
|  |         "version": "2.1.20", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608245516, | ||||||
|  |         "version": "2.1.19", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607485227, | ||||||
|  |         "version": "2.1.18", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607381756, | ||||||
|  |         "version": "2.1.17", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1606961263, | ||||||
|  |         "version": "2.1.16", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605763885, | ||||||
|  |         "version": "2.1.15", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605302002, | ||||||
|  |         "version": "2.1.14", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1604385937, | ||||||
|  |         "version": "2.1.13", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|         "timestamp": 1604376968, |         "timestamp": 1604376968, | ||||||
|         "version": "2.1.12", |         "version": "2.1.12", | ||||||
|   | |||||||
| @@ -5,6 +5,50 @@ Edit the package's CHANGELOG.json file only. | |||||||
|  |  | ||||||
| CHANGELOG | CHANGELOG | ||||||
|  |  | ||||||
|  | ## v2.1.23 - _January 26, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.1.22 - _January 13, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.1.21 - _January 4, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.1.20 - _December 23, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.1.19 - _December 17, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.1.18 - _December 9, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.1.17 - _December 7, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.1.16 - _December 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.1.15 - _November 19, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.1.14 - _November 13, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.1.13 - _November 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
| ## v2.1.12 - _November 3, 2020_ | ## v2.1.12 - _November 3, 2020_ | ||||||
|  |  | ||||||
|     * Dependencies updated |     * Dependencies updated | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "name": "@0x/contracts-erc1155", |     "name": "@0x/contracts-erc1155", | ||||||
|     "version": "2.1.12", |     "version": "2.1.23", | ||||||
|     "engines": { |     "engines": { | ||||||
|         "node": ">=6.12" |         "node": ">=6.12" | ||||||
|     }, |     }, | ||||||
| @@ -52,15 +52,15 @@ | |||||||
|     }, |     }, | ||||||
|     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/tokens", |     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/tokens", | ||||||
|     "devDependencies": { |     "devDependencies": { | ||||||
|         "@0x/abi-gen": "^5.4.7", |         "@0x/abi-gen": "^5.4.19", | ||||||
|         "@0x/contracts-gen": "2.0.18", |         "@0x/contracts-gen": "^2.0.30", | ||||||
|         "@0x/contracts-utils": "^4.5.6", |         "@0x/contracts-utils": "^4.7.2", | ||||||
|         "@0x/dev-utils": "^4.0.1", |         "@0x/dev-utils": "^4.2.1", | ||||||
|         "@0x/sol-compiler": "^4.2.7", |         "@0x/sol-compiler": "^4.5.2", | ||||||
|         "@0x/ts-doc-gen": "^0.0.28", |         "@0x/ts-doc-gen": "^0.0.28", | ||||||
|         "@0x/tslint-config": "^4.1.3", |         "@0x/tslint-config": "^4.1.3", | ||||||
|         "@0x/types": "^3.3.0", |         "@0x/types": "^3.3.1", | ||||||
|         "@0x/typescript-typings": "^5.1.5", |         "@0x/typescript-typings": "^5.1.6", | ||||||
|         "@types/lodash": "4.14.104", |         "@types/lodash": "4.14.104", | ||||||
|         "@types/mocha": "^5.2.7", |         "@types/mocha": "^5.2.7", | ||||||
|         "@types/node": "12.12.54", |         "@types/node": "12.12.54", | ||||||
| @@ -68,7 +68,7 @@ | |||||||
|         "chai-as-promised": "^7.1.0", |         "chai-as-promised": "^7.1.0", | ||||||
|         "chai-bignumber": "^3.0.0", |         "chai-bignumber": "^3.0.0", | ||||||
|         "dirty-chai": "^2.0.1", |         "dirty-chai": "^2.0.1", | ||||||
|         "ethereum-types": "^3.3.3", |         "ethereum-types": "^3.4.0", | ||||||
|         "make-promises-safe": "^1.1.0", |         "make-promises-safe": "^1.1.0", | ||||||
|         "mocha": "^6.2.0", |         "mocha": "^6.2.0", | ||||||
|         "npm-run-all": "^4.1.2", |         "npm-run-all": "^4.1.2", | ||||||
| @@ -80,10 +80,10 @@ | |||||||
|         "typescript": "3.0.1" |         "typescript": "3.0.1" | ||||||
|     }, |     }, | ||||||
|     "dependencies": { |     "dependencies": { | ||||||
|         "@0x/base-contract": "^6.2.11", |         "@0x/base-contract": "^6.2.18", | ||||||
|         "@0x/contracts-test-utils": "^5.3.9", |         "@0x/contracts-test-utils": "^5.3.20", | ||||||
|         "@0x/utils": "^6.1.0", |         "@0x/utils": "^6.2.0", | ||||||
|         "@0x/web3-wrapper": "^7.2.8", |         "@0x/web3-wrapper": "^7.4.1", | ||||||
|         "lodash": "^4.17.11" |         "lodash": "^4.17.11" | ||||||
|     }, |     }, | ||||||
|     "publishConfig": { |     "publishConfig": { | ||||||
|   | |||||||
| @@ -1,4 +1,108 @@ | |||||||
| [ | [ | ||||||
|  |     { | ||||||
|  |         "timestamp": 1611648096, | ||||||
|  |         "version": "3.3.2", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1610510890, | ||||||
|  |         "version": "3.3.1", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "3.3.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Add SPDX license identifiers to solidity files", | ||||||
|  |                 "pr": 105 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Allow for excess return data in `LibERC20TokenV06` compat* functions", | ||||||
|  |                 "pr": 97 | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1609802516 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608692071, | ||||||
|  |         "version": "3.2.14", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608245516, | ||||||
|  |         "version": "3.2.13", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607485227, | ||||||
|  |         "version": "3.2.12", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607381756, | ||||||
|  |         "version": "3.2.11", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1606961263, | ||||||
|  |         "version": "3.2.10", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605763885, | ||||||
|  |         "version": "3.2.9", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605302002, | ||||||
|  |         "version": "3.2.8", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1604385937, | ||||||
|  |         "version": "3.2.7", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|         "timestamp": 1604376968, |         "timestamp": 1604376968, | ||||||
|         "version": "3.2.6", |         "version": "3.2.6", | ||||||
|   | |||||||
| @@ -5,6 +5,51 @@ Edit the package's CHANGELOG.json file only. | |||||||
|  |  | ||||||
| CHANGELOG | CHANGELOG | ||||||
|  |  | ||||||
|  | ## v3.3.2 - _January 26, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.3.1 - _January 13, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.3.0 - _January 4, 2021_ | ||||||
|  |  | ||||||
|  |     * Add SPDX license identifiers to solidity files (#105) | ||||||
|  |     * Allow for excess return data in `LibERC20TokenV06` compat* functions (#97) | ||||||
|  |  | ||||||
|  | ## v3.2.14 - _December 23, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.2.13 - _December 17, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.2.12 - _December 9, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.2.11 - _December 7, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.2.10 - _December 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.2.9 - _November 19, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.2.8 - _November 13, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.2.7 - _November 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
| ## v3.2.6 - _November 3, 2020_ | ## v3.2.6 - _November 3, 2020_ | ||||||
|  |  | ||||||
|     * Dependencies updated |     * Dependencies updated | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
| @@ -118,7 +119,7 @@ library LibERC20TokenV06 { | |||||||
|     { |     { | ||||||
|         tokenDecimals = 18; |         tokenDecimals = 18; | ||||||
|         (bool didSucceed, bytes memory resultData) = address(token).staticcall(DECIMALS_CALL_DATA); |         (bool didSucceed, bytes memory resultData) = address(token).staticcall(DECIMALS_CALL_DATA); | ||||||
|         if (didSucceed && resultData.length == 32) { |         if (didSucceed && resultData.length >= 32) { | ||||||
|             tokenDecimals = uint8(LibBytesV06.readUint256(resultData, 0)); |             tokenDecimals = uint8(LibBytesV06.readUint256(resultData, 0)); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| @@ -141,7 +142,7 @@ library LibERC20TokenV06 { | |||||||
|                 spender |                 spender | ||||||
|             ) |             ) | ||||||
|         ); |         ); | ||||||
|         if (didSucceed && resultData.length == 32) { |         if (didSucceed && resultData.length >= 32) { | ||||||
|             allowance_ = LibBytesV06.readUint256(resultData, 0); |             allowance_ = LibBytesV06.readUint256(resultData, 0); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| @@ -162,7 +163,7 @@ library LibERC20TokenV06 { | |||||||
|                 owner |                 owner | ||||||
|             ) |             ) | ||||||
|         ); |         ); | ||||||
|         if (didSucceed && resultData.length == 32) { |         if (didSucceed && resultData.length >= 32) { | ||||||
|             balance = LibBytesV06.readUint256(resultData, 0); |             balance = LibBytesV06.readUint256(resultData, 0); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| @@ -180,7 +181,7 @@ library LibERC20TokenV06 { | |||||||
|         if (resultData.length == 0) { |         if (resultData.length == 0) { | ||||||
|             return true; |             return true; | ||||||
|         } |         } | ||||||
|         if (resultData.length == 32) { |         if (resultData.length >= 32) { | ||||||
|             uint256 result = LibBytesV06.readUint256(resultData, 0); |             uint256 result = LibBytesV06.readUint256(resultData, 0); | ||||||
|             if (result == 1) { |             if (result == 1) { | ||||||
|                 return true; |                 return true; | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "name": "@0x/contracts-erc20", |     "name": "@0x/contracts-erc20", | ||||||
|     "version": "3.2.6", |     "version": "3.3.2", | ||||||
|     "engines": { |     "engines": { | ||||||
|         "node": ">=6.12" |         "node": ">=6.12" | ||||||
|     }, |     }, | ||||||
| @@ -51,18 +51,18 @@ | |||||||
|     }, |     }, | ||||||
|     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/tokens", |     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/tokens", | ||||||
|     "devDependencies": { |     "devDependencies": { | ||||||
|         "@0x/abi-gen": "^5.4.7", |         "@0x/abi-gen": "^5.4.19", | ||||||
|         "@0x/contracts-gen": "2.0.18", |         "@0x/contracts-gen": "^2.0.30", | ||||||
|         "@0x/contracts-test-utils": "^5.3.9", |         "@0x/contracts-test-utils": "^5.3.20", | ||||||
|         "@0x/contracts-utils": "^4.5.6", |         "@0x/contracts-utils": "^4.7.2", | ||||||
|         "@0x/dev-utils": "^4.0.1", |         "@0x/dev-utils": "^4.2.1", | ||||||
|         "@0x/sol-compiler": "^4.2.7", |         "@0x/sol-compiler": "^4.5.2", | ||||||
|         "@0x/ts-doc-gen": "^0.0.28", |         "@0x/ts-doc-gen": "^0.0.28", | ||||||
|         "@0x/tslint-config": "^4.1.3", |         "@0x/tslint-config": "^4.1.3", | ||||||
|         "@0x/types": "^3.3.0", |         "@0x/types": "^3.3.1", | ||||||
|         "@0x/typescript-typings": "^5.1.5", |         "@0x/typescript-typings": "^5.1.6", | ||||||
|         "@0x/utils": "^6.1.0", |         "@0x/utils": "^6.2.0", | ||||||
|         "@0x/web3-wrapper": "^7.2.8", |         "@0x/web3-wrapper": "^7.4.1", | ||||||
|         "@types/lodash": "4.14.104", |         "@types/lodash": "4.14.104", | ||||||
|         "@types/mocha": "^5.2.7", |         "@types/mocha": "^5.2.7", | ||||||
|         "@types/node": "12.12.54", |         "@types/node": "12.12.54", | ||||||
| @@ -70,7 +70,7 @@ | |||||||
|         "chai-as-promised": "^7.1.0", |         "chai-as-promised": "^7.1.0", | ||||||
|         "chai-bignumber": "^3.0.0", |         "chai-bignumber": "^3.0.0", | ||||||
|         "dirty-chai": "^2.0.1", |         "dirty-chai": "^2.0.1", | ||||||
|         "ethereum-types": "^3.3.3", |         "ethereum-types": "^3.4.0", | ||||||
|         "lodash": "^4.17.11", |         "lodash": "^4.17.11", | ||||||
|         "make-promises-safe": "^1.1.0", |         "make-promises-safe": "^1.1.0", | ||||||
|         "mocha": "^6.2.0", |         "mocha": "^6.2.0", | ||||||
| @@ -82,7 +82,7 @@ | |||||||
|         "typescript": "3.0.1" |         "typescript": "3.0.1" | ||||||
|     }, |     }, | ||||||
|     "dependencies": { |     "dependencies": { | ||||||
|         "@0x/base-contract": "^6.2.11" |         "@0x/base-contract": "^6.2.18" | ||||||
|     }, |     }, | ||||||
|     "publishConfig": { |     "publishConfig": { | ||||||
|         "access": "public" |         "access": "public" | ||||||
|   | |||||||
| @@ -1,4 +1,103 @@ | |||||||
| [ | [ | ||||||
|  |     { | ||||||
|  |         "timestamp": 1611648096, | ||||||
|  |         "version": "3.1.23", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1610510890, | ||||||
|  |         "version": "3.1.22", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1609802516, | ||||||
|  |         "version": "3.1.21", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608692071, | ||||||
|  |         "version": "3.1.20", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608245516, | ||||||
|  |         "version": "3.1.19", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607485227, | ||||||
|  |         "version": "3.1.18", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607381756, | ||||||
|  |         "version": "3.1.17", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1606961263, | ||||||
|  |         "version": "3.1.16", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605763885, | ||||||
|  |         "version": "3.1.15", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605302002, | ||||||
|  |         "version": "3.1.14", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1604385937, | ||||||
|  |         "version": "3.1.13", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|         "timestamp": 1604376968, |         "timestamp": 1604376968, | ||||||
|         "version": "3.1.12", |         "version": "3.1.12", | ||||||
|   | |||||||
| @@ -5,6 +5,50 @@ Edit the package's CHANGELOG.json file only. | |||||||
|  |  | ||||||
| CHANGELOG | CHANGELOG | ||||||
|  |  | ||||||
|  | ## v3.1.23 - _January 26, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.1.22 - _January 13, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.1.21 - _January 4, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.1.20 - _December 23, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.1.19 - _December 17, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.1.18 - _December 9, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.1.17 - _December 7, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.1.16 - _December 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.1.15 - _November 19, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.1.14 - _November 13, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.1.13 - _November 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
| ## v3.1.12 - _November 3, 2020_ | ## v3.1.12 - _November 3, 2020_ | ||||||
|  |  | ||||||
|     * Dependencies updated |     * Dependencies updated | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "name": "@0x/contracts-erc721", |     "name": "@0x/contracts-erc721", | ||||||
|     "version": "3.1.12", |     "version": "3.1.23", | ||||||
|     "engines": { |     "engines": { | ||||||
|         "node": ">=6.12" |         "node": ">=6.12" | ||||||
|     }, |     }, | ||||||
| @@ -52,18 +52,18 @@ | |||||||
|     }, |     }, | ||||||
|     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/tokens", |     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/tokens", | ||||||
|     "devDependencies": { |     "devDependencies": { | ||||||
|         "@0x/abi-gen": "^5.4.7", |         "@0x/abi-gen": "^5.4.19", | ||||||
|         "@0x/contracts-gen": "2.0.18", |         "@0x/contracts-gen": "^2.0.30", | ||||||
|         "@0x/contracts-test-utils": "^5.3.9", |         "@0x/contracts-test-utils": "^5.3.20", | ||||||
|         "@0x/contracts-utils": "^4.5.6", |         "@0x/contracts-utils": "^4.7.2", | ||||||
|         "@0x/dev-utils": "^4.0.1", |         "@0x/dev-utils": "^4.2.1", | ||||||
|         "@0x/sol-compiler": "^4.2.7", |         "@0x/sol-compiler": "^4.5.2", | ||||||
|         "@0x/ts-doc-gen": "^0.0.28", |         "@0x/ts-doc-gen": "^0.0.28", | ||||||
|         "@0x/tslint-config": "^4.1.3", |         "@0x/tslint-config": "^4.1.3", | ||||||
|         "@0x/types": "^3.3.0", |         "@0x/types": "^3.3.1", | ||||||
|         "@0x/typescript-typings": "^5.1.5", |         "@0x/typescript-typings": "^5.1.6", | ||||||
|         "@0x/utils": "^6.1.0", |         "@0x/utils": "^6.2.0", | ||||||
|         "@0x/web3-wrapper": "^7.2.8", |         "@0x/web3-wrapper": "^7.4.1", | ||||||
|         "@types/lodash": "4.14.104", |         "@types/lodash": "4.14.104", | ||||||
|         "@types/mocha": "^5.2.7", |         "@types/mocha": "^5.2.7", | ||||||
|         "@types/node": "12.12.54", |         "@types/node": "12.12.54", | ||||||
| @@ -71,7 +71,7 @@ | |||||||
|         "chai-as-promised": "^7.1.0", |         "chai-as-promised": "^7.1.0", | ||||||
|         "chai-bignumber": "^3.0.0", |         "chai-bignumber": "^3.0.0", | ||||||
|         "dirty-chai": "^2.0.1", |         "dirty-chai": "^2.0.1", | ||||||
|         "ethereum-types": "^3.3.3", |         "ethereum-types": "^3.4.0", | ||||||
|         "lodash": "^4.17.11", |         "lodash": "^4.17.11", | ||||||
|         "make-promises-safe": "^1.1.0", |         "make-promises-safe": "^1.1.0", | ||||||
|         "mocha": "^6.2.0", |         "mocha": "^6.2.0", | ||||||
| @@ -84,7 +84,7 @@ | |||||||
|         "typescript": "3.0.1" |         "typescript": "3.0.1" | ||||||
|     }, |     }, | ||||||
|     "dependencies": { |     "dependencies": { | ||||||
|         "@0x/base-contract": "^6.2.11" |         "@0x/base-contract": "^6.2.18" | ||||||
|     }, |     }, | ||||||
|     "publishConfig": { |     "publishConfig": { | ||||||
|         "access": "public" |         "access": "public" | ||||||
|   | |||||||
| @@ -1,4 +1,112 @@ | |||||||
| [ | [ | ||||||
|  |     { | ||||||
|  |         "timestamp": 1611648096, | ||||||
|  |         "version": "4.2.24", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1610510890, | ||||||
|  |         "version": "4.2.23", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1609802516, | ||||||
|  |         "version": "4.2.22", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608692071, | ||||||
|  |         "version": "4.2.21", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608245516, | ||||||
|  |         "version": "4.2.20", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608105788, | ||||||
|  |         "version": "4.2.19", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607485227, | ||||||
|  |         "version": "4.2.18", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607381756, | ||||||
|  |         "version": "4.2.17", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1606961263, | ||||||
|  |         "version": "4.2.16", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605763885, | ||||||
|  |         "version": "4.2.15", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605302002, | ||||||
|  |         "version": "4.2.14", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1604385937, | ||||||
|  |         "version": "4.2.13", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|         "timestamp": 1604376968, |         "timestamp": 1604376968, | ||||||
|         "version": "4.2.12", |         "version": "4.2.12", | ||||||
|   | |||||||
| @@ -5,6 +5,54 @@ Edit the package's CHANGELOG.json file only. | |||||||
|  |  | ||||||
| CHANGELOG | CHANGELOG | ||||||
|  |  | ||||||
|  | ## v4.2.24 - _January 26, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.2.23 - _January 13, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.2.22 - _January 4, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.2.21 - _December 23, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.2.20 - _December 17, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.2.19 - _December 16, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.2.18 - _December 9, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.2.17 - _December 7, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.2.16 - _December 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.2.15 - _November 19, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.2.14 - _November 13, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.2.13 - _November 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
| ## v4.2.12 - _November 3, 2020_ | ## v4.2.12 - _November 3, 2020_ | ||||||
|  |  | ||||||
|     * Dependencies updated |     * Dependencies updated | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "name": "@0x/contracts-exchange-forwarder", |     "name": "@0x/contracts-exchange-forwarder", | ||||||
|     "version": "4.2.12", |     "version": "4.2.24", | ||||||
|     "engines": { |     "engines": { | ||||||
|         "node": ">=6.12" |         "node": ">=6.12" | ||||||
|     }, |     }, | ||||||
| @@ -52,25 +52,25 @@ | |||||||
|     }, |     }, | ||||||
|     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions", |     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions", | ||||||
|     "devDependencies": { |     "devDependencies": { | ||||||
|         "@0x/abi-gen": "^5.4.7", |         "@0x/abi-gen": "^5.4.19", | ||||||
|         "@0x/contracts-asset-proxy": "^3.6.3", |         "@0x/contracts-asset-proxy": "^3.7.5", | ||||||
|         "@0x/contracts-dev-utils": "^1.3.10", |         "@0x/contracts-dev-utils": "^1.3.22", | ||||||
|         "@0x/contracts-erc1155": "^2.1.12", |         "@0x/contracts-erc1155": "^2.1.23", | ||||||
|         "@0x/contracts-erc20": "^3.2.6", |         "@0x/contracts-erc20": "^3.3.2", | ||||||
|         "@0x/contracts-erc721": "^3.1.12", |         "@0x/contracts-erc721": "^3.1.23", | ||||||
|         "@0x/contracts-exchange": "^3.2.12", |         "@0x/contracts-exchange": "^3.2.24", | ||||||
|         "@0x/contracts-exchange-libs": "^4.3.12", |         "@0x/contracts-exchange-libs": "^4.3.23", | ||||||
|         "@0x/contracts-gen": "2.0.18", |         "@0x/contracts-gen": "^2.0.30", | ||||||
|         "@0x/contracts-test-utils": "^5.3.9", |         "@0x/contracts-test-utils": "^5.3.20", | ||||||
|         "@0x/contracts-utils": "^4.5.6", |         "@0x/contracts-utils": "^4.7.2", | ||||||
|         "@0x/dev-utils": "^4.0.1", |         "@0x/dev-utils": "^4.2.1", | ||||||
|         "@0x/order-utils": "^10.4.4", |         "@0x/order-utils": "^10.4.15", | ||||||
|         "@0x/sol-compiler": "^4.2.7", |         "@0x/sol-compiler": "^4.5.2", | ||||||
|         "@0x/ts-doc-gen": "^0.0.28", |         "@0x/ts-doc-gen": "^0.0.28", | ||||||
|         "@0x/tslint-config": "^4.1.3", |         "@0x/tslint-config": "^4.1.3", | ||||||
|         "@0x/types": "^3.3.0", |         "@0x/types": "^3.3.1", | ||||||
|         "@0x/utils": "^6.1.0", |         "@0x/utils": "^6.2.0", | ||||||
|         "@0x/web3-wrapper": "^7.2.8", |         "@0x/web3-wrapper": "^7.4.1", | ||||||
|         "@types/lodash": "4.14.104", |         "@types/lodash": "4.14.104", | ||||||
|         "@types/mocha": "^5.2.7", |         "@types/mocha": "^5.2.7", | ||||||
|         "@types/node": "12.12.54", |         "@types/node": "12.12.54", | ||||||
| @@ -90,9 +90,9 @@ | |||||||
|         "typescript": "3.0.1" |         "typescript": "3.0.1" | ||||||
|     }, |     }, | ||||||
|     "dependencies": { |     "dependencies": { | ||||||
|         "@0x/base-contract": "^6.2.11", |         "@0x/base-contract": "^6.2.18", | ||||||
|         "@0x/typescript-typings": "^5.1.5", |         "@0x/typescript-typings": "^5.1.6", | ||||||
|         "ethereum-types": "^3.3.3" |         "ethereum-types": "^3.4.0" | ||||||
|     }, |     }, | ||||||
|     "publishConfig": { |     "publishConfig": { | ||||||
|         "access": "public" |         "access": "public" | ||||||
|   | |||||||
| @@ -1,4 +1,103 @@ | |||||||
| [ | [ | ||||||
|  |     { | ||||||
|  |         "timestamp": 1611648096, | ||||||
|  |         "version": "4.3.23", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1610510890, | ||||||
|  |         "version": "4.3.22", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1609802516, | ||||||
|  |         "version": "4.3.21", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608692071, | ||||||
|  |         "version": "4.3.20", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608245516, | ||||||
|  |         "version": "4.3.19", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607485227, | ||||||
|  |         "version": "4.3.18", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607381756, | ||||||
|  |         "version": "4.3.17", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1606961263, | ||||||
|  |         "version": "4.3.16", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605763885, | ||||||
|  |         "version": "4.3.15", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605302002, | ||||||
|  |         "version": "4.3.14", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1604385937, | ||||||
|  |         "version": "4.3.13", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|         "timestamp": 1604376968, |         "timestamp": 1604376968, | ||||||
|         "version": "4.3.12", |         "version": "4.3.12", | ||||||
|   | |||||||
| @@ -5,6 +5,50 @@ Edit the package's CHANGELOG.json file only. | |||||||
|  |  | ||||||
| CHANGELOG | CHANGELOG | ||||||
|  |  | ||||||
|  | ## v4.3.23 - _January 26, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.3.22 - _January 13, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.3.21 - _January 4, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.3.20 - _December 23, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.3.19 - _December 17, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.3.18 - _December 9, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.3.17 - _December 7, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.3.16 - _December 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.3.15 - _November 19, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.3.14 - _November 13, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.3.13 - _November 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
| ## v4.3.12 - _November 3, 2020_ | ## v4.3.12 - _November 3, 2020_ | ||||||
|  |  | ||||||
|     * Dependencies updated |     * Dependencies updated | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "name": "@0x/contracts-exchange-libs", |     "name": "@0x/contracts-exchange-libs", | ||||||
|     "version": "4.3.12", |     "version": "4.3.23", | ||||||
|     "engines": { |     "engines": { | ||||||
|         "node": ">=6.12" |         "node": ">=6.12" | ||||||
|     }, |     }, | ||||||
| @@ -52,14 +52,14 @@ | |||||||
|     }, |     }, | ||||||
|     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/libs", |     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/libs", | ||||||
|     "devDependencies": { |     "devDependencies": { | ||||||
|         "@0x/abi-gen": "^5.4.7", |         "@0x/abi-gen": "^5.4.19", | ||||||
|         "@0x/contracts-gen": "2.0.18", |         "@0x/contracts-gen": "^2.0.30", | ||||||
|         "@0x/dev-utils": "^4.0.1", |         "@0x/dev-utils": "^4.2.1", | ||||||
|         "@0x/sol-compiler": "^4.2.7", |         "@0x/sol-compiler": "^4.5.2", | ||||||
|         "@0x/subproviders": "^6.1.9", |         "@0x/subproviders": "^6.4.1", | ||||||
|         "@0x/ts-doc-gen": "^0.0.28", |         "@0x/ts-doc-gen": "^0.0.28", | ||||||
|         "@0x/tslint-config": "^4.1.3", |         "@0x/tslint-config": "^4.1.3", | ||||||
|         "@0x/web3-wrapper": "^7.2.8", |         "@0x/web3-wrapper": "^7.4.1", | ||||||
|         "@types/lodash": "4.14.104", |         "@types/lodash": "4.14.104", | ||||||
|         "@types/mocha": "^5.2.7", |         "@types/mocha": "^5.2.7", | ||||||
|         "@types/node": "12.12.54", |         "@types/node": "12.12.54", | ||||||
| @@ -80,14 +80,14 @@ | |||||||
|         "typescript": "3.0.1" |         "typescript": "3.0.1" | ||||||
|     }, |     }, | ||||||
|     "dependencies": { |     "dependencies": { | ||||||
|         "@0x/base-contract": "^6.2.11", |         "@0x/base-contract": "^6.2.18", | ||||||
|         "@0x/contracts-test-utils": "^5.3.9", |         "@0x/contracts-test-utils": "^5.3.20", | ||||||
|         "@0x/contracts-utils": "^4.5.6", |         "@0x/contracts-utils": "^4.7.2", | ||||||
|         "@0x/order-utils": "^10.4.4", |         "@0x/order-utils": "^10.4.15", | ||||||
|         "@0x/types": "^3.3.0", |         "@0x/types": "^3.3.1", | ||||||
|         "@0x/typescript-typings": "^5.1.5", |         "@0x/typescript-typings": "^5.1.6", | ||||||
|         "@0x/utils": "^6.1.0", |         "@0x/utils": "^6.2.0", | ||||||
|         "ethereum-types": "^3.3.3" |         "ethereum-types": "^3.4.0" | ||||||
|     }, |     }, | ||||||
|     "publishConfig": { |     "publishConfig": { | ||||||
|         "access": "public" |         "access": "public" | ||||||
|   | |||||||
| @@ -1,4 +1,112 @@ | |||||||
| [ | [ | ||||||
|  |     { | ||||||
|  |         "timestamp": 1611648096, | ||||||
|  |         "version": "3.2.24", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1610510890, | ||||||
|  |         "version": "3.2.23", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1609802516, | ||||||
|  |         "version": "3.2.22", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608692071, | ||||||
|  |         "version": "3.2.21", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608245516, | ||||||
|  |         "version": "3.2.20", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608105788, | ||||||
|  |         "version": "3.2.19", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607485227, | ||||||
|  |         "version": "3.2.18", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607381756, | ||||||
|  |         "version": "3.2.17", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1606961263, | ||||||
|  |         "version": "3.2.16", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605763885, | ||||||
|  |         "version": "3.2.15", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605302002, | ||||||
|  |         "version": "3.2.14", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1604385937, | ||||||
|  |         "version": "3.2.13", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|         "timestamp": 1604376968, |         "timestamp": 1604376968, | ||||||
|         "version": "3.2.12", |         "version": "3.2.12", | ||||||
|   | |||||||
| @@ -5,6 +5,54 @@ Edit the package's CHANGELOG.json file only. | |||||||
|  |  | ||||||
| CHANGELOG | CHANGELOG | ||||||
|  |  | ||||||
|  | ## v3.2.24 - _January 26, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.2.23 - _January 13, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.2.22 - _January 4, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.2.21 - _December 23, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.2.20 - _December 17, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.2.19 - _December 16, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.2.18 - _December 9, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.2.17 - _December 7, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.2.16 - _December 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.2.15 - _November 19, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.2.14 - _November 13, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v3.2.13 - _November 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
| ## v3.2.12 - _November 3, 2020_ | ## v3.2.12 - _November 3, 2020_ | ||||||
|  |  | ||||||
|     * Dependencies updated |     * Dependencies updated | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "name": "@0x/contracts-exchange", |     "name": "@0x/contracts-exchange", | ||||||
|     "version": "3.2.12", |     "version": "3.2.24", | ||||||
|     "engines": { |     "engines": { | ||||||
|         "node": ">=6.12" |         "node": ">=6.12" | ||||||
|     }, |     }, | ||||||
| @@ -52,21 +52,21 @@ | |||||||
|     }, |     }, | ||||||
|     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/protocol", |     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/protocol", | ||||||
|     "devDependencies": { |     "devDependencies": { | ||||||
|         "@0x/abi-gen": "^5.4.7", |         "@0x/abi-gen": "^5.4.19", | ||||||
|         "@0x/contracts-asset-proxy": "^3.6.3", |         "@0x/contracts-asset-proxy": "^3.7.5", | ||||||
|         "@0x/contracts-exchange-libs": "^4.3.12", |         "@0x/contracts-exchange-libs": "^4.3.23", | ||||||
|         "@0x/contracts-gen": "2.0.18", |         "@0x/contracts-gen": "^2.0.30", | ||||||
|         "@0x/contracts-multisig": "^4.1.12", |         "@0x/contracts-multisig": "^4.1.24", | ||||||
|         "@0x/contracts-staking": "^2.0.19", |         "@0x/contracts-staking": "^2.0.31", | ||||||
|         "@0x/contracts-test-utils": "^5.3.9", |         "@0x/contracts-test-utils": "^5.3.20", | ||||||
|         "@0x/contracts-utils": "^4.5.6", |         "@0x/contracts-utils": "^4.7.2", | ||||||
|         "@0x/dev-utils": "^4.0.1", |         "@0x/dev-utils": "^4.2.1", | ||||||
|         "@0x/sol-compiler": "^4.2.7", |         "@0x/sol-compiler": "^4.5.2", | ||||||
|         "@0x/ts-doc-gen": "^0.0.28", |         "@0x/ts-doc-gen": "^0.0.28", | ||||||
|         "@0x/tslint-config": "^4.1.3", |         "@0x/tslint-config": "^4.1.3", | ||||||
|         "@0x/types": "^3.3.0", |         "@0x/types": "^3.3.1", | ||||||
|         "@0x/typescript-typings": "^5.1.5", |         "@0x/typescript-typings": "^5.1.6", | ||||||
|         "@0x/web3-wrapper": "^7.2.8", |         "@0x/web3-wrapper": "^7.4.1", | ||||||
|         "@types/lodash": "4.14.104", |         "@types/lodash": "4.14.104", | ||||||
|         "@types/mocha": "^5.2.7", |         "@types/mocha": "^5.2.7", | ||||||
|         "@types/node": "12.12.54", |         "@types/node": "12.12.54", | ||||||
| @@ -74,7 +74,7 @@ | |||||||
|         "chai-as-promised": "^7.1.0", |         "chai-as-promised": "^7.1.0", | ||||||
|         "chai-bignumber": "^3.0.0", |         "chai-bignumber": "^3.0.0", | ||||||
|         "dirty-chai": "^2.0.1", |         "dirty-chai": "^2.0.1", | ||||||
|         "ethereum-types": "^3.3.3", |         "ethereum-types": "^3.4.0", | ||||||
|         "ethereumjs-util": "^5.1.1", |         "ethereumjs-util": "^5.1.1", | ||||||
|         "js-combinatorics": "^0.5.3", |         "js-combinatorics": "^0.5.3", | ||||||
|         "make-promises-safe": "^1.1.0", |         "make-promises-safe": "^1.1.0", | ||||||
| @@ -88,13 +88,13 @@ | |||||||
|         "typescript": "3.0.1" |         "typescript": "3.0.1" | ||||||
|     }, |     }, | ||||||
|     "dependencies": { |     "dependencies": { | ||||||
|         "@0x/base-contract": "^6.2.11", |         "@0x/base-contract": "^6.2.18", | ||||||
|         "@0x/contracts-dev-utils": "^1.3.10", |         "@0x/contracts-dev-utils": "^1.3.22", | ||||||
|         "@0x/contracts-erc1155": "^2.1.12", |         "@0x/contracts-erc1155": "^2.1.23", | ||||||
|         "@0x/contracts-erc20": "^3.2.6", |         "@0x/contracts-erc20": "^3.3.2", | ||||||
|         "@0x/contracts-erc721": "^3.1.12", |         "@0x/contracts-erc721": "^3.1.23", | ||||||
|         "@0x/order-utils": "^10.4.4", |         "@0x/order-utils": "^10.4.15", | ||||||
|         "@0x/utils": "^6.1.0", |         "@0x/utils": "^6.2.0", | ||||||
|         "lodash": "^4.17.11" |         "lodash": "^4.17.11" | ||||||
|     }, |     }, | ||||||
|     "publishConfig": { |     "publishConfig": { | ||||||
|   | |||||||
| @@ -1,4 +1,112 @@ | |||||||
| [ | [ | ||||||
|  |     { | ||||||
|  |         "timestamp": 1611648096, | ||||||
|  |         "version": "6.2.18", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1610510890, | ||||||
|  |         "version": "6.2.17", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1609802516, | ||||||
|  |         "version": "6.2.16", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608692071, | ||||||
|  |         "version": "6.2.15", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608245516, | ||||||
|  |         "version": "6.2.14", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608105788, | ||||||
|  |         "version": "6.2.13", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607485227, | ||||||
|  |         "version": "6.2.12", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607381756, | ||||||
|  |         "version": "6.2.11", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1606961263, | ||||||
|  |         "version": "6.2.10", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605763885, | ||||||
|  |         "version": "6.2.9", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605302002, | ||||||
|  |         "version": "6.2.8", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1604385937, | ||||||
|  |         "version": "6.2.7", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|         "timestamp": 1604376968, |         "timestamp": 1604376968, | ||||||
|         "version": "6.2.6", |         "version": "6.2.6", | ||||||
|   | |||||||
| @@ -5,6 +5,54 @@ Edit the package's CHANGELOG.json file only. | |||||||
|  |  | ||||||
| CHANGELOG | CHANGELOG | ||||||
|  |  | ||||||
|  | ## v6.2.18 - _January 26, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v6.2.17 - _January 13, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v6.2.16 - _January 4, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v6.2.15 - _December 23, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v6.2.14 - _December 17, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v6.2.13 - _December 16, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v6.2.12 - _December 9, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v6.2.11 - _December 7, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v6.2.10 - _December 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v6.2.9 - _November 19, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v6.2.8 - _November 13, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v6.2.7 - _November 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
| ## v6.2.6 - _November 3, 2020_ | ## v6.2.6 - _November 3, 2020_ | ||||||
|  |  | ||||||
|     * Dependencies updated |     * Dependencies updated | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "name": "@0x/contracts-extensions", |     "name": "@0x/contracts-extensions", | ||||||
|     "version": "6.2.6", |     "version": "6.2.18", | ||||||
|     "engines": { |     "engines": { | ||||||
|         "node": ">=6.12" |         "node": ">=6.12" | ||||||
|     }, |     }, | ||||||
| @@ -52,23 +52,23 @@ | |||||||
|     }, |     }, | ||||||
|     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions", |     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions", | ||||||
|     "devDependencies": { |     "devDependencies": { | ||||||
|         "@0x/abi-gen": "^5.4.7", |         "@0x/abi-gen": "^5.4.19", | ||||||
|         "@0x/contracts-asset-proxy": "^3.6.3", |         "@0x/contracts-asset-proxy": "^3.7.5", | ||||||
|         "@0x/contracts-dev-utils": "^1.3.10", |         "@0x/contracts-dev-utils": "^1.3.22", | ||||||
|         "@0x/contracts-erc20": "^3.2.6", |         "@0x/contracts-erc20": "^3.3.2", | ||||||
|         "@0x/contracts-erc721": "^3.1.12", |         "@0x/contracts-erc721": "^3.1.23", | ||||||
|         "@0x/contracts-exchange": "^3.2.12", |         "@0x/contracts-exchange": "^3.2.24", | ||||||
|         "@0x/contracts-exchange-libs": "^4.3.12", |         "@0x/contracts-exchange-libs": "^4.3.23", | ||||||
|         "@0x/contracts-gen": "2.0.18", |         "@0x/contracts-gen": "^2.0.30", | ||||||
|         "@0x/contracts-utils": "^4.5.6", |         "@0x/contracts-utils": "^4.7.2", | ||||||
|         "@0x/dev-utils": "^4.0.1", |         "@0x/dev-utils": "^4.2.1", | ||||||
|         "@0x/order-utils": "^10.4.4", |         "@0x/order-utils": "^10.4.15", | ||||||
|         "@0x/sol-compiler": "^4.2.7", |         "@0x/sol-compiler": "^4.5.2", | ||||||
|         "@0x/ts-doc-gen": "^0.0.28", |         "@0x/ts-doc-gen": "^0.0.28", | ||||||
|         "@0x/tslint-config": "^4.1.3", |         "@0x/tslint-config": "^4.1.3", | ||||||
|         "@0x/types": "^3.3.0", |         "@0x/types": "^3.3.1", | ||||||
|         "@0x/utils": "^6.1.0", |         "@0x/utils": "^6.2.0", | ||||||
|         "@0x/web3-wrapper": "^7.2.8", |         "@0x/web3-wrapper": "^7.4.1", | ||||||
|         "@types/lodash": "4.14.104", |         "@types/lodash": "4.14.104", | ||||||
|         "@types/mocha": "^5.2.7", |         "@types/mocha": "^5.2.7", | ||||||
|         "@types/node": "12.12.54", |         "@types/node": "12.12.54", | ||||||
| @@ -90,10 +90,10 @@ | |||||||
|         "typescript": "3.0.1" |         "typescript": "3.0.1" | ||||||
|     }, |     }, | ||||||
|     "dependencies": { |     "dependencies": { | ||||||
|         "@0x/base-contract": "^6.2.11", |         "@0x/base-contract": "^6.2.18", | ||||||
|         "@0x/contracts-test-utils": "^5.3.9", |         "@0x/contracts-test-utils": "^5.3.20", | ||||||
|         "@0x/typescript-typings": "^5.1.5", |         "@0x/typescript-typings": "^5.1.6", | ||||||
|         "ethereum-types": "^3.3.3" |         "ethereum-types": "^3.4.0" | ||||||
|     }, |     }, | ||||||
|     "publishConfig": { |     "publishConfig": { | ||||||
|         "access": "public" |         "access": "public" | ||||||
|   | |||||||
| @@ -1,4 +1,49 @@ | |||||||
| [ | [ | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605763885, | ||||||
|  |         "version": "2.7.10", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605320370, | ||||||
|  |         "version": "2.7.9", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605302002, | ||||||
|  |         "version": "2.7.8", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1604620645, | ||||||
|  |         "version": "2.7.7", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1604385937, | ||||||
|  |         "version": "2.7.6", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|         "timestamp": 1604376968, |         "timestamp": 1604376968, | ||||||
|         "version": "2.7.5", |         "version": "2.7.5", | ||||||
|   | |||||||
| @@ -5,6 +5,26 @@ Edit the package's CHANGELOG.json file only. | |||||||
|  |  | ||||||
| CHANGELOG | CHANGELOG | ||||||
|  |  | ||||||
|  | ## v2.7.10 - _November 19, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.7.9 - _November 14, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.7.8 - _November 13, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.7.7 - _November 5, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.7.6 - _November 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
| ## v2.7.5 - _November 3, 2020_ | ## v2.7.5 - _November 3, 2020_ | ||||||
|  |  | ||||||
|     * Dependencies updated |     * Dependencies updated | ||||||
|   | |||||||
| @@ -0,0 +1,39 @@ | |||||||
|  | /* | ||||||
|  |  | ||||||
|  |   Copyright 2020 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.6.5; | ||||||
|  |  | ||||||
|  | import "@0x/contracts-zero-ex/contracts/test/TestFixinProtocolFees.sol"; | ||||||
|  | import "@0x/contracts-zero-ex/contracts/src/external/FeeCollectorController.sol"; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | contract TestFixinProtocolFeesIntegration is TestFixinProtocolFees { | ||||||
|  |     constructor( | ||||||
|  |         IEtherTokenV06 weth, | ||||||
|  |         IStaking staking, | ||||||
|  |         uint32 protocolFeeMultiplier | ||||||
|  |     ) | ||||||
|  |         public | ||||||
|  |         TestFixinProtocolFees( | ||||||
|  |             weth, | ||||||
|  |             staking, | ||||||
|  |             new FeeCollectorController(weth, staking), | ||||||
|  |             protocolFeeMultiplier | ||||||
|  |         ) | ||||||
|  |     {} | ||||||
|  | } | ||||||
							
								
								
									
										110
									
								
								contracts/integrations/contracts/test/TestStaking.sol
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								contracts/integrations/contracts/test/TestStaking.sol
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,110 @@ | |||||||
|  | /* | ||||||
|  |  | ||||||
|  |   Copyright 2019 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.9; | ||||||
|  | pragma experimental ABIEncoderV2; | ||||||
|  |  | ||||||
|  | import "@0x/contracts-staking/contracts/src/Staking.sol"; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | contract TestStaking is | ||||||
|  |     Staking | ||||||
|  | { | ||||||
|  |     IEtherToken public testWeth; | ||||||
|  |  | ||||||
|  |     struct TestPool { | ||||||
|  |         uint96 operatorStake; | ||||||
|  |         uint96 membersStake; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     mapping(bytes32 => TestPool) private _testPools; | ||||||
|  |  | ||||||
|  |     constructor(address exchangeAddress, IEtherToken _testWeth) public { | ||||||
|  |         testWeth = _testWeth; | ||||||
|  |  | ||||||
|  |         _addAuthorizedAddress(msg.sender); | ||||||
|  |         init(); | ||||||
|  |         validExchanges[exchangeAddress] = true; | ||||||
|  |         _removeAuthorizedAddressAtIndex(msg.sender, 0); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     function advanceEpoch() | ||||||
|  |         external | ||||||
|  |     { | ||||||
|  |         currentEpoch += 1; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /// @dev Create a test pool. | ||||||
|  |     function createTestPool( | ||||||
|  |         bytes32 poolId, | ||||||
|  |         uint96 operatorStake, | ||||||
|  |         uint96 membersStake | ||||||
|  |     ) | ||||||
|  |         external | ||||||
|  |     { | ||||||
|  |         TestPool storage pool = _testPools[poolId]; | ||||||
|  |         pool.operatorStake = operatorStake; | ||||||
|  |         pool.membersStake = membersStake; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     function getAggregatedStatsForCurrentEpoch() | ||||||
|  |         external | ||||||
|  |         view | ||||||
|  |         returns (IStructs.AggregatedStats memory) | ||||||
|  |     { | ||||||
|  |         return aggregatedStatsByEpoch[currentEpoch]; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /// @dev Overridden to use test pools. | ||||||
|  |     function getTotalStakeDelegatedToPool(bytes32 poolId) | ||||||
|  |         public | ||||||
|  |         view | ||||||
|  |         returns (IStructs.StoredBalance memory balance) | ||||||
|  |     { | ||||||
|  |         TestPool memory pool = _testPools[poolId]; | ||||||
|  |         uint96 stake = pool.operatorStake + pool.membersStake; | ||||||
|  |         return IStructs.StoredBalance({ | ||||||
|  |             currentEpoch: currentEpoch.downcastToUint64(), | ||||||
|  |             currentEpochBalance: stake, | ||||||
|  |             nextEpochBalance: stake | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /// @dev Overridden to use test pools. | ||||||
|  |     function getStakeDelegatedToPoolByOwner(address, bytes32 poolId) | ||||||
|  |         public | ||||||
|  |         view | ||||||
|  |         returns (IStructs.StoredBalance memory balance) | ||||||
|  |     { | ||||||
|  |         TestPool memory pool = _testPools[poolId]; | ||||||
|  |         return IStructs.StoredBalance({ | ||||||
|  |             currentEpoch: currentEpoch.downcastToUint64(), | ||||||
|  |             currentEpochBalance: pool.operatorStake, | ||||||
|  |             nextEpochBalance: pool.operatorStake | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     function getWethContract() | ||||||
|  |         public | ||||||
|  |         view | ||||||
|  |         returns (IEtherToken wethContract) | ||||||
|  |     { | ||||||
|  |         return testWeth; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
| @@ -0,0 +1,24 @@ | |||||||
|  | /* | ||||||
|  |  | ||||||
|  |   Copyright 2020 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.6.5; | ||||||
|  |  | ||||||
|  | import "@0x/contracts-zero-ex/contracts/test/TestWeth.sol"; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | contract TestWethIntegration is TestWeth {} | ||||||
| @@ -1,6 +1,7 @@ | |||||||
| { | { | ||||||
|     "name": "@0x/contracts-integrations", |     "name": "@0x/contracts-integrations", | ||||||
|     "version": "2.7.5", |     "version": "2.7.24", | ||||||
|  |     "private": true, | ||||||
|     "engines": { |     "engines": { | ||||||
|         "node": ">=6.12" |         "node": ">=6.12" | ||||||
|     }, |     }, | ||||||
| @@ -38,7 +39,7 @@ | |||||||
|     }, |     }, | ||||||
|     "config": { |     "config": { | ||||||
|         "publicInterfaceContracts": "TestFramework", |         "publicInterfaceContracts": "TestFramework", | ||||||
|         "abis": "./test/generated-artifacts/@(ChainlinkStopLimit|IChainlinkAggregator|TestChainlinkAggregator|TestContractWrapper|TestDydxUser|TestEth2Dai|TestEth2DaiBridge|TestFramework|TestMainnetAggregatorFills|TestSignatureValidationWallet|TestUniswapBridge|TestUniswapExchange|TestUniswapExchangeFactory).json", |         "abis": "./test/generated-artifacts/@(ChainlinkStopLimit|IChainlinkAggregator|TestChainlinkAggregator|TestContractWrapper|TestDydxUser|TestEth2Dai|TestEth2DaiBridge|TestFixinProtocolFeesIntegration|TestFramework|TestMainnetAggregatorFills|TestSignatureValidationWallet|TestStaking|TestUniswapBridge|TestUniswapExchange|TestUniswapExchangeFactory|TestWethIntegration).json", | ||||||
|         "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." |         "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." | ||||||
|     }, |     }, | ||||||
|     "repository": { |     "repository": { | ||||||
| @@ -51,24 +52,25 @@ | |||||||
|     }, |     }, | ||||||
|     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions", |     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions", | ||||||
|     "devDependencies": { |     "devDependencies": { | ||||||
|         "@0x/abi-gen": "^5.4.7", |         "@0x/abi-gen": "^5.4.19", | ||||||
|         "@0x/contract-addresses": "^5.1.0", |         "@0x/contract-addresses": "^5.9.0", | ||||||
|         "@0x/contract-wrappers": "^13.9.4", |         "@0x/contract-wrappers": "^13.12.2", | ||||||
|         "@0x/contracts-broker": "^1.1.11", |         "@0x/contracts-broker": "^1.1.23", | ||||||
|         "@0x/contracts-coordinator": "^3.1.12", |         "@0x/contracts-coordinator": "^3.1.24", | ||||||
|         "@0x/contracts-dev-utils": "^1.3.10", |         "@0x/contracts-dev-utils": "^1.3.22", | ||||||
|         "@0x/contracts-exchange-forwarder": "^4.2.12", |         "@0x/contracts-exchange-forwarder": "^4.2.24", | ||||||
|         "@0x/contracts-exchange-libs": "^4.3.12", |         "@0x/contracts-exchange-libs": "^4.3.23", | ||||||
|         "@0x/contracts-extensions": "^6.2.6", |         "@0x/contracts-extensions": "^6.2.18", | ||||||
|         "@0x/contracts-gen": "2.0.18", |         "@0x/contracts-gen": "^2.0.30", | ||||||
|         "@0x/contracts-utils": "^4.5.6", |         "@0x/contracts-utils": "^4.7.2", | ||||||
|         "@0x/coordinator-server": "^1.0.5", |         "@0x/coordinator-server": "^1.0.5", | ||||||
|         "@0x/dev-utils": "^4.0.1", |         "@0x/dev-utils": "^4.2.1", | ||||||
|         "@0x/migrations": "^6.4.6", |         "@0x/migrations": "^6.5.11", | ||||||
|         "@0x/order-utils": "^10.4.4", |         "@0x/order-utils": "^10.4.15", | ||||||
|         "@0x/sol-compiler": "^4.2.7", |         "@0x/protocol-utils": "^1.1.5", | ||||||
|  |         "@0x/sol-compiler": "^4.5.2", | ||||||
|         "@0x/tslint-config": "^4.1.3", |         "@0x/tslint-config": "^4.1.3", | ||||||
|         "@0x/web3-wrapper": "^7.2.8", |         "@0x/web3-wrapper": "^7.4.1", | ||||||
|         "@azure/core-asynciterator-polyfill": "^1.0.0", |         "@azure/core-asynciterator-polyfill": "^1.0.0", | ||||||
|         "@types/lodash": "4.14.104", |         "@types/lodash": "4.14.104", | ||||||
|         "@types/mocha": "^5.2.7", |         "@types/mocha": "^5.2.7", | ||||||
| @@ -91,22 +93,22 @@ | |||||||
|         "typescript": "3.0.1" |         "typescript": "3.0.1" | ||||||
|     }, |     }, | ||||||
|     "dependencies": { |     "dependencies": { | ||||||
|         "@0x/asset-swapper": "^5.0.1", |         "@0x/asset-swapper": "^5.8.1", | ||||||
|         "@0x/base-contract": "^6.2.11", |         "@0x/base-contract": "^6.2.18", | ||||||
|         "@0x/contracts-asset-proxy": "^3.6.3", |         "@0x/contracts-asset-proxy": "^3.7.5", | ||||||
|         "@0x/contracts-erc1155": "^2.1.12", |         "@0x/contracts-erc1155": "^2.1.23", | ||||||
|         "@0x/contracts-erc20": "^3.2.6", |         "@0x/contracts-erc20": "^3.3.2", | ||||||
|         "@0x/contracts-erc721": "^3.1.12", |         "@0x/contracts-erc721": "^3.1.23", | ||||||
|         "@0x/contracts-exchange": "^3.2.12", |         "@0x/contracts-exchange": "^3.2.24", | ||||||
|         "@0x/contracts-multisig": "^4.1.12", |         "@0x/contracts-multisig": "^4.1.24", | ||||||
|         "@0x/contracts-staking": "^2.0.19", |         "@0x/contracts-staking": "^2.0.31", | ||||||
|         "@0x/contracts-test-utils": "^5.3.9", |         "@0x/contracts-test-utils": "^5.3.20", | ||||||
|         "@0x/contracts-zero-ex": "^0.7.0", |         "@0x/contracts-zero-ex": "^0.18.1", | ||||||
|         "@0x/subproviders": "^6.1.9", |         "@0x/subproviders": "^6.4.1", | ||||||
|         "@0x/types": "^3.3.0", |         "@0x/types": "^3.3.1", | ||||||
|         "@0x/typescript-typings": "^5.1.5", |         "@0x/typescript-typings": "^5.1.6", | ||||||
|         "@0x/utils": "^6.1.0", |         "@0x/utils": "^6.2.0", | ||||||
|         "ethereum-types": "^3.3.3", |         "ethereum-types": "^3.4.0", | ||||||
|         "ethereumjs-util": "^6.2.0", |         "ethereumjs-util": "^6.2.0", | ||||||
|         "lodash": "^4.17.11" |         "lodash": "^4.17.11" | ||||||
|     }, |     }, | ||||||
|   | |||||||
| @@ -12,12 +12,15 @@ import * as TestContractWrapper from '../test/generated-artifacts/TestContractWr | |||||||
| import * as TestDydxUser from '../test/generated-artifacts/TestDydxUser.json'; | import * as TestDydxUser from '../test/generated-artifacts/TestDydxUser.json'; | ||||||
| import * as TestEth2Dai from '../test/generated-artifacts/TestEth2Dai.json'; | import * as TestEth2Dai from '../test/generated-artifacts/TestEth2Dai.json'; | ||||||
| import * as TestEth2DaiBridge from '../test/generated-artifacts/TestEth2DaiBridge.json'; | import * as TestEth2DaiBridge from '../test/generated-artifacts/TestEth2DaiBridge.json'; | ||||||
|  | import * as TestFixinProtocolFeesIntegration from '../test/generated-artifacts/TestFixinProtocolFeesIntegration.json'; | ||||||
| import * as TestFramework from '../test/generated-artifacts/TestFramework.json'; | import * as TestFramework from '../test/generated-artifacts/TestFramework.json'; | ||||||
| import * as TestMainnetAggregatorFills from '../test/generated-artifacts/TestMainnetAggregatorFills.json'; | import * as TestMainnetAggregatorFills from '../test/generated-artifacts/TestMainnetAggregatorFills.json'; | ||||||
| import * as TestSignatureValidationWallet from '../test/generated-artifacts/TestSignatureValidationWallet.json'; | import * as TestSignatureValidationWallet from '../test/generated-artifacts/TestSignatureValidationWallet.json'; | ||||||
|  | import * as TestStaking from '../test/generated-artifacts/TestStaking.json'; | ||||||
| import * as TestUniswapBridge from '../test/generated-artifacts/TestUniswapBridge.json'; | import * as TestUniswapBridge from '../test/generated-artifacts/TestUniswapBridge.json'; | ||||||
| import * as TestUniswapExchange from '../test/generated-artifacts/TestUniswapExchange.json'; | import * as TestUniswapExchange from '../test/generated-artifacts/TestUniswapExchange.json'; | ||||||
| import * as TestUniswapExchangeFactory from '../test/generated-artifacts/TestUniswapExchangeFactory.json'; | import * as TestUniswapExchangeFactory from '../test/generated-artifacts/TestUniswapExchangeFactory.json'; | ||||||
|  | import * as TestWethIntegration from '../test/generated-artifacts/TestWethIntegration.json'; | ||||||
| export const artifacts = { | export const artifacts = { | ||||||
|     ChainlinkStopLimit: ChainlinkStopLimit as ContractArtifact, |     ChainlinkStopLimit: ChainlinkStopLimit as ContractArtifact, | ||||||
|     IChainlinkAggregator: IChainlinkAggregator as ContractArtifact, |     IChainlinkAggregator: IChainlinkAggregator as ContractArtifact, | ||||||
| @@ -26,10 +29,13 @@ export const artifacts = { | |||||||
|     TestDydxUser: TestDydxUser as ContractArtifact, |     TestDydxUser: TestDydxUser as ContractArtifact, | ||||||
|     TestEth2Dai: TestEth2Dai as ContractArtifact, |     TestEth2Dai: TestEth2Dai as ContractArtifact, | ||||||
|     TestEth2DaiBridge: TestEth2DaiBridge as ContractArtifact, |     TestEth2DaiBridge: TestEth2DaiBridge as ContractArtifact, | ||||||
|  |     TestFixinProtocolFeesIntegration: TestFixinProtocolFeesIntegration as ContractArtifact, | ||||||
|     TestFramework: TestFramework as ContractArtifact, |     TestFramework: TestFramework as ContractArtifact, | ||||||
|     TestMainnetAggregatorFills: TestMainnetAggregatorFills as ContractArtifact, |     TestMainnetAggregatorFills: TestMainnetAggregatorFills as ContractArtifact, | ||||||
|     TestSignatureValidationWallet: TestSignatureValidationWallet as ContractArtifact, |     TestSignatureValidationWallet: TestSignatureValidationWallet as ContractArtifact, | ||||||
|  |     TestStaking: TestStaking as ContractArtifact, | ||||||
|     TestUniswapBridge: TestUniswapBridge as ContractArtifact, |     TestUniswapBridge: TestUniswapBridge as ContractArtifact, | ||||||
|     TestUniswapExchange: TestUniswapExchange as ContractArtifact, |     TestUniswapExchange: TestUniswapExchange as ContractArtifact, | ||||||
|     TestUniswapExchangeFactory: TestUniswapExchangeFactory as ContractArtifact, |     TestUniswapExchangeFactory: TestUniswapExchangeFactory as ContractArtifact, | ||||||
|  |     TestWethIntegration: TestWethIntegration as ContractArtifact, | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -6,24 +6,31 @@ import { | |||||||
|     artifacts as exchangeProxyArtifacts, |     artifacts as exchangeProxyArtifacts, | ||||||
|     IZeroExContract, |     IZeroExContract, | ||||||
|     LogMetadataTransformerContract, |     LogMetadataTransformerContract, | ||||||
|     signCallData, |  | ||||||
| } from '@0x/contracts-zero-ex'; | } from '@0x/contracts-zero-ex'; | ||||||
| import { migrateOnceAsync } from '@0x/migrations'; | import { migrateOnceAsync } from '@0x/migrations'; | ||||||
|  | import { assetDataUtils, signatureUtils, SignedExchangeProxyMetaTransaction } from '@0x/order-utils'; | ||||||
| import { | import { | ||||||
|     assetDataUtils, |  | ||||||
|     encodeFillQuoteTransformerData, |     encodeFillQuoteTransformerData, | ||||||
|     encodePayTakerTransformerData, |     encodePayTakerTransformerData, | ||||||
|     ETH_TOKEN_ADDRESS, |     ETH_TOKEN_ADDRESS, | ||||||
|     FillQuoteTransformerSide, |     FillQuoteTransformerSide, | ||||||
|     findTransformerNonce, |     findTransformerNonce, | ||||||
|     signatureUtils, |     Signature, | ||||||
|     SignedExchangeProxyMetaTransaction, | } from '@0x/protocol-utils'; | ||||||
| } from '@0x/order-utils'; |  | ||||||
| import { AssetProxyId, Order, SignedOrder } from '@0x/types'; | import { AssetProxyId, Order, SignedOrder } from '@0x/types'; | ||||||
| import { BigNumber, hexUtils, ZeroExRevertErrors } from '@0x/utils'; | import { BigNumber, hexUtils } from '@0x/utils'; | ||||||
| import * as ethjs from 'ethereumjs-util'; | import * as ethjs from 'ethereumjs-util'; | ||||||
|  |  | ||||||
| const { MAX_UINT256, NULL_ADDRESS, NULL_BYTES, NULL_BYTES32, ZERO_AMOUNT } = constants; | const { MAX_UINT256, NULL_ADDRESS, NULL_BYTES, ZERO_AMOUNT } = constants; | ||||||
|  |  | ||||||
|  | function sigstruct(signature: string): Signature { | ||||||
|  |     return { | ||||||
|  |         v: parseInt(hexUtils.slice(signature, 0, 1), 16), | ||||||
|  |         signatureType: parseInt(hexUtils.slice(signature, 65, 66), 16), | ||||||
|  |         r: hexUtils.slice(signature, 1, 33), | ||||||
|  |         s: hexUtils.slice(signature, 33, 65), | ||||||
|  |     }; | ||||||
|  | } | ||||||
|  |  | ||||||
| blockchainTests.resets('exchange proxy - meta-transactions', env => { | blockchainTests.resets('exchange proxy - meta-transactions', env => { | ||||||
|     const quoteSignerKey = hexUtils.random(); |     const quoteSignerKey = hexUtils.random(); | ||||||
| @@ -188,21 +195,6 @@ blockchainTests.resets('exchange proxy - meta-transactions', env => { | |||||||
|             .getABIEncodedTransactionData(); |             .getABIEncodedTransactionData(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     function getSignedSwapData(swap: SwapInfo, signerKey?: string): string { |  | ||||||
|         return signCallData( |  | ||||||
|             zeroEx |  | ||||||
|                 .transformERC20( |  | ||||||
|                     swap.inputTokenAddress, |  | ||||||
|                     swap.outputTokenAddress, |  | ||||||
|                     swap.inputTokenAmount, |  | ||||||
|                     swap.minOutputTokenAmount, |  | ||||||
|                     swap.transformations, |  | ||||||
|                 ) |  | ||||||
|                 .getABIEncodedTransactionData(), |  | ||||||
|             signerKey ? signerKey : quoteSignerKey, |  | ||||||
|         ); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     async function createMetaTransactionAsync( |     async function createMetaTransactionAsync( | ||||||
|         data: string, |         data: string, | ||||||
|         value: BigNumber, |         value: BigNumber, | ||||||
| @@ -232,15 +224,13 @@ blockchainTests.resets('exchange proxy - meta-transactions', env => { | |||||||
|         ); |         ); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     it('can call `transformERC20()` with signed calldata and no relayer fee', async () => { |     it('can call `transformERC20()` with calldata and no relayer fee', async () => { | ||||||
|         const swap = await generateSwapAsync(); |         const swap = await generateSwapAsync(); | ||||||
|         const callDataHash = hexUtils.hash(getSwapData(swap)); |  | ||||||
|         const signedSwapData = getSignedSwapData(swap); |  | ||||||
|         const _protocolFee = protocolFee.times(GAS_PRICE).times(swap.orders.length + 1); // Pay a little more fee than needed. |         const _protocolFee = protocolFee.times(GAS_PRICE).times(swap.orders.length + 1); // Pay a little more fee than needed. | ||||||
|         const mtx = await createMetaTransactionAsync(signedSwapData, _protocolFee, 0); |         const mtx = await createMetaTransactionAsync(getSwapData(swap), _protocolFee, 0); | ||||||
|         const relayerEthBalanceBefore = await env.web3Wrapper.getBalanceInWeiAsync(relayer); |         const relayerEthBalanceBefore = await env.web3Wrapper.getBalanceInWeiAsync(relayer); | ||||||
|         const receipt = await zeroEx |         const receipt = await zeroEx | ||||||
|             .executeMetaTransaction(mtx, mtx.signature) |             .executeMetaTransaction(mtx, sigstruct(mtx.signature)) | ||||||
|             .awaitTransactionSuccessAsync({ from: relayer, value: mtx.value, gasPrice: GAS_PRICE }); |             .awaitTransactionSuccessAsync({ from: relayer, value: mtx.value, gasPrice: GAS_PRICE }); | ||||||
|         const relayerEthRefund = relayerEthBalanceBefore |         const relayerEthRefund = relayerEthBalanceBefore | ||||||
|             .minus(await env.web3Wrapper.getBalanceInWeiAsync(relayer)) |             .minus(await env.web3Wrapper.getBalanceInWeiAsync(relayer)) | ||||||
| @@ -259,7 +249,6 @@ blockchainTests.resets('exchange proxy - meta-transactions', env => { | |||||||
|             [ |             [ | ||||||
|                 { |                 { | ||||||
|                     taker, |                     taker, | ||||||
|                     callDataHash, |  | ||||||
|                     sender: zeroEx.address, |                     sender: zeroEx.address, | ||||||
|                     data: NULL_BYTES, |                     data: NULL_BYTES, | ||||||
|                 }, |                 }, | ||||||
| @@ -268,15 +257,13 @@ blockchainTests.resets('exchange proxy - meta-transactions', env => { | |||||||
|         ); |         ); | ||||||
|     }); |     }); | ||||||
|  |  | ||||||
|     it('can call `transformERC20()` with signed calldata and a relayer fee', async () => { |     it('can call `transformERC20()` with calldata and a relayer fee', async () => { | ||||||
|         const swap = await generateSwapAsync(); |         const swap = await generateSwapAsync(); | ||||||
|         const callDataHash = hexUtils.hash(getSwapData(swap)); |  | ||||||
|         const signedSwapData = getSignedSwapData(swap); |  | ||||||
|         const _protocolFee = protocolFee.times(GAS_PRICE).times(swap.orders.length + 1); // Pay a little more fee than needed. |         const _protocolFee = protocolFee.times(GAS_PRICE).times(swap.orders.length + 1); // Pay a little more fee than needed. | ||||||
|         const mtx = await createMetaTransactionAsync(signedSwapData, _protocolFee); |         const mtx = await createMetaTransactionAsync(getSwapData(swap), _protocolFee); | ||||||
|         const relayerEthBalanceBefore = await env.web3Wrapper.getBalanceInWeiAsync(relayer); |         const relayerEthBalanceBefore = await env.web3Wrapper.getBalanceInWeiAsync(relayer); | ||||||
|         const receipt = await zeroEx |         const receipt = await zeroEx | ||||||
|             .executeMetaTransaction(mtx, mtx.signature) |             .executeMetaTransaction(mtx, sigstruct(mtx.signature)) | ||||||
|             .awaitTransactionSuccessAsync({ from: relayer, value: mtx.value, gasPrice: GAS_PRICE }); |             .awaitTransactionSuccessAsync({ from: relayer, value: mtx.value, gasPrice: GAS_PRICE }); | ||||||
|         const relayerEthRefund = relayerEthBalanceBefore |         const relayerEthRefund = relayerEthBalanceBefore | ||||||
|             .minus(await env.web3Wrapper.getBalanceInWeiAsync(relayer)) |             .minus(await env.web3Wrapper.getBalanceInWeiAsync(relayer)) | ||||||
| @@ -295,7 +282,6 @@ blockchainTests.resets('exchange proxy - meta-transactions', env => { | |||||||
|             [ |             [ | ||||||
|                 { |                 { | ||||||
|                     taker, |                     taker, | ||||||
|                     callDataHash, |  | ||||||
|                     sender: zeroEx.address, |                     sender: zeroEx.address, | ||||||
|                     data: NULL_BYTES, |                     data: NULL_BYTES, | ||||||
|                 }, |                 }, | ||||||
| @@ -304,51 +290,13 @@ blockchainTests.resets('exchange proxy - meta-transactions', env => { | |||||||
|         ); |         ); | ||||||
|     }); |     }); | ||||||
|  |  | ||||||
|     it('can call `transformERC20()` with wrongly signed calldata and a relayer fee', async () => { |     it('`transformERC20()` can fill RFQT order', async () => { | ||||||
|         const swap = await generateSwapAsync(); |  | ||||||
|         const signedSwapData = getSignedSwapData(swap, hexUtils.random()); |  | ||||||
|         const _protocolFee = protocolFee.times(GAS_PRICE).times(swap.orders.length + 1); // Pay a little more fee than needed. |  | ||||||
|         const mtx = await createMetaTransactionAsync(signedSwapData, _protocolFee); |  | ||||||
|         const relayerEthBalanceBefore = await env.web3Wrapper.getBalanceInWeiAsync(relayer); |  | ||||||
|         const receipt = await zeroEx |  | ||||||
|             .executeMetaTransaction(mtx, mtx.signature) |  | ||||||
|             .awaitTransactionSuccessAsync({ from: relayer, value: mtx.value, gasPrice: GAS_PRICE }); |  | ||||||
|         const relayerEthRefund = relayerEthBalanceBefore |  | ||||||
|             .minus(await env.web3Wrapper.getBalanceInWeiAsync(relayer)) |  | ||||||
|             .minus(GAS_PRICE.times(receipt.gasUsed)); |  | ||||||
|         // Ensure the relayer got back the unused protocol fees. |  | ||||||
|         expect(relayerEthRefund).to.bignumber.eq(protocolFee.times(GAS_PRICE)); |  | ||||||
|         // Ensure the relayer got paid mtx fees. |  | ||||||
|         expect(await feeToken.balanceOf(relayer).callAsync()).to.bignumber.eq(mtx.feeAmount); |  | ||||||
|         // Ensure the taker got output tokens. |  | ||||||
|         expect(await outputToken.balanceOf(taker).callAsync()).to.bignumber.eq(swap.minOutputTokenAmount); |  | ||||||
|         // Ensure the maker got input tokens. |  | ||||||
|         expect(await inputToken.balanceOf(maker).callAsync()).to.bignumber.eq(swap.inputTokenAmount); |  | ||||||
|         // Check events. |  | ||||||
|         verifyEventsFromLogs( |  | ||||||
|             receipt.logs, |  | ||||||
|             [ |  | ||||||
|                 { |  | ||||||
|                     taker, |  | ||||||
|                     // Only signed calldata should have a nonzero hash. |  | ||||||
|                     callDataHash: NULL_BYTES32, |  | ||||||
|                     sender: zeroEx.address, |  | ||||||
|                     data: NULL_BYTES, |  | ||||||
|                 }, |  | ||||||
|             ], |  | ||||||
|             'TransformerMetadata', |  | ||||||
|         ); |  | ||||||
|     }); |  | ||||||
|  |  | ||||||
|     it('`transformERC20()` can fill RFQT order if calldata is signed', async () => { |  | ||||||
|         const swap = await generateSwapAsync({}, true); |         const swap = await generateSwapAsync({}, true); | ||||||
|         const callDataHash = hexUtils.hash(getSwapData(swap)); |  | ||||||
|         const signedSwapData = getSignedSwapData(swap); |  | ||||||
|         const _protocolFee = protocolFee.times(GAS_PRICE).times(swap.orders.length + 1); // Pay a little more fee than needed. |         const _protocolFee = protocolFee.times(GAS_PRICE).times(swap.orders.length + 1); // Pay a little more fee than needed. | ||||||
|         const mtx = await createMetaTransactionAsync(signedSwapData, _protocolFee, 0); |         const mtx = await createMetaTransactionAsync(getSwapData(swap), _protocolFee, 0); | ||||||
|         const relayerEthBalanceBefore = await env.web3Wrapper.getBalanceInWeiAsync(relayer); |         const relayerEthBalanceBefore = await env.web3Wrapper.getBalanceInWeiAsync(relayer); | ||||||
|         const receipt = await zeroEx |         const receipt = await zeroEx | ||||||
|             .executeMetaTransaction(mtx, mtx.signature) |             .executeMetaTransaction(mtx, sigstruct(mtx.signature)) | ||||||
|             .awaitTransactionSuccessAsync({ from: relayer, value: mtx.value, gasPrice: GAS_PRICE }); |             .awaitTransactionSuccessAsync({ from: relayer, value: mtx.value, gasPrice: GAS_PRICE }); | ||||||
|         const relayerEthRefund = relayerEthBalanceBefore |         const relayerEthRefund = relayerEthBalanceBefore | ||||||
|             .minus(await env.web3Wrapper.getBalanceInWeiAsync(relayer)) |             .minus(await env.web3Wrapper.getBalanceInWeiAsync(relayer)) | ||||||
| @@ -367,7 +315,6 @@ blockchainTests.resets('exchange proxy - meta-transactions', env => { | |||||||
|             [ |             [ | ||||||
|                 { |                 { | ||||||
|                     taker, |                     taker, | ||||||
|                     callDataHash, |  | ||||||
|                     sender: zeroEx.address, |                     sender: zeroEx.address, | ||||||
|                     data: NULL_BYTES, |                     data: NULL_BYTES, | ||||||
|                 }, |                 }, | ||||||
| @@ -376,16 +323,15 @@ blockchainTests.resets('exchange proxy - meta-transactions', env => { | |||||||
|         ); |         ); | ||||||
|     }); |     }); | ||||||
|  |  | ||||||
|     it('`transformERC20()` can fill RFQT order if calldata is not signed but no quote signer configured', async () => { |     it('`transformERC20()` can fill RFQT order if quote signer configured', async () => { | ||||||
|         const swap = await generateSwapAsync({}, true); |         const swap = await generateSwapAsync({}, true); | ||||||
|         const callData = getSwapData(swap); |         const callData = getSwapData(swap); | ||||||
|         const callDataHash = hexUtils.hash(callData); |  | ||||||
|         const _protocolFee = protocolFee.times(GAS_PRICE).times(swap.orders.length + 1); // Pay a little more fee than needed. |         const _protocolFee = protocolFee.times(GAS_PRICE).times(swap.orders.length + 1); // Pay a little more fee than needed. | ||||||
|         const mtx = await createMetaTransactionAsync(callData, _protocolFee, 0); |         const mtx = await createMetaTransactionAsync(callData, _protocolFee, 0); | ||||||
|         const relayerEthBalanceBefore = await env.web3Wrapper.getBalanceInWeiAsync(relayer); |         const relayerEthBalanceBefore = await env.web3Wrapper.getBalanceInWeiAsync(relayer); | ||||||
|         await zeroEx.setQuoteSigner(NULL_ADDRESS).awaitTransactionSuccessAsync({ from: owner }); |         await zeroEx.setQuoteSigner(NULL_ADDRESS).awaitTransactionSuccessAsync({ from: owner }); | ||||||
|         const receipt = await zeroEx |         const receipt = await zeroEx | ||||||
|             .executeMetaTransaction(mtx, mtx.signature) |             .executeMetaTransaction(mtx, sigstruct(mtx.signature)) | ||||||
|             .awaitTransactionSuccessAsync({ from: relayer, value: mtx.value, gasPrice: GAS_PRICE }); |             .awaitTransactionSuccessAsync({ from: relayer, value: mtx.value, gasPrice: GAS_PRICE }); | ||||||
|         const relayerEthRefund = relayerEthBalanceBefore |         const relayerEthRefund = relayerEthBalanceBefore | ||||||
|             .minus(await env.web3Wrapper.getBalanceInWeiAsync(relayer)) |             .minus(await env.web3Wrapper.getBalanceInWeiAsync(relayer)) | ||||||
| @@ -404,7 +350,6 @@ blockchainTests.resets('exchange proxy - meta-transactions', env => { | |||||||
|             [ |             [ | ||||||
|                 { |                 { | ||||||
|                     taker, |                     taker, | ||||||
|                     callDataHash, |  | ||||||
|                     sender: zeroEx.address, |                     sender: zeroEx.address, | ||||||
|                     data: NULL_BYTES, |                     data: NULL_BYTES, | ||||||
|                 }, |                 }, | ||||||
| @@ -412,15 +357,4 @@ blockchainTests.resets('exchange proxy - meta-transactions', env => { | |||||||
|             'TransformerMetadata', |             'TransformerMetadata', | ||||||
|         ); |         ); | ||||||
|     }); |     }); | ||||||
|  |  | ||||||
|     it('`transformERC20()` cannot fill RFQT order if calldata is not signed', async () => { |  | ||||||
|         const swap = await generateSwapAsync({}, true); |  | ||||||
|         const callData = getSwapData(swap); |  | ||||||
|         const _protocolFee = protocolFee.times(GAS_PRICE).times(swap.orders.length + 1); // Pay a little more fee than needed. |  | ||||||
|         const mtx = await createMetaTransactionAsync(callData, _protocolFee, 0); |  | ||||||
|         const tx = zeroEx |  | ||||||
|             .executeMetaTransaction(mtx, mtx.signature) |  | ||||||
|             .awaitTransactionSuccessAsync({ from: relayer, value: mtx.value, gasPrice: GAS_PRICE }); |  | ||||||
|         return expect(tx).to.revertWith(new ZeroExRevertErrors.MetaTransactions.MetaTransactionCallFailedError()); |  | ||||||
|     }); |  | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -10,9 +10,12 @@ export * from '../test/generated-wrappers/test_contract_wrapper'; | |||||||
| export * from '../test/generated-wrappers/test_dydx_user'; | export * from '../test/generated-wrappers/test_dydx_user'; | ||||||
| export * from '../test/generated-wrappers/test_eth2_dai'; | export * from '../test/generated-wrappers/test_eth2_dai'; | ||||||
| export * from '../test/generated-wrappers/test_eth2_dai_bridge'; | export * from '../test/generated-wrappers/test_eth2_dai_bridge'; | ||||||
|  | export * from '../test/generated-wrappers/test_fixin_protocol_fees_integration'; | ||||||
| export * from '../test/generated-wrappers/test_framework'; | export * from '../test/generated-wrappers/test_framework'; | ||||||
| export * from '../test/generated-wrappers/test_mainnet_aggregator_fills'; | export * from '../test/generated-wrappers/test_mainnet_aggregator_fills'; | ||||||
| export * from '../test/generated-wrappers/test_signature_validation_wallet'; | export * from '../test/generated-wrappers/test_signature_validation_wallet'; | ||||||
|  | export * from '../test/generated-wrappers/test_staking'; | ||||||
| export * from '../test/generated-wrappers/test_uniswap_bridge'; | export * from '../test/generated-wrappers/test_uniswap_bridge'; | ||||||
| export * from '../test/generated-wrappers/test_uniswap_exchange'; | export * from '../test/generated-wrappers/test_uniswap_exchange'; | ||||||
| export * from '../test/generated-wrappers/test_uniswap_exchange_factory'; | export * from '../test/generated-wrappers/test_uniswap_exchange_factory'; | ||||||
|  | export * from '../test/generated-wrappers/test_weth_integration'; | ||||||
|   | |||||||
| @@ -0,0 +1,85 @@ | |||||||
|  | import { blockchainTests, constants, expect } from '@0x/contracts-test-utils'; | ||||||
|  | import { BigNumber, hexUtils } from '@0x/utils'; | ||||||
|  |  | ||||||
|  | import { artifacts } from '../artifacts'; | ||||||
|  | import { | ||||||
|  |     TestFixinProtocolFeesIntegrationContract, | ||||||
|  |     TestStakingContract, | ||||||
|  |     TestWethIntegrationContract, | ||||||
|  | } from '../wrappers'; | ||||||
|  |  | ||||||
|  | blockchainTests.resets('ProtocolFeeIntegration', env => { | ||||||
|  |     const FEE_MULTIPLIER = 70e3; | ||||||
|  |     let owner: string; | ||||||
|  |     let taker: string; | ||||||
|  |     let protocolFees: TestFixinProtocolFeesIntegrationContract; | ||||||
|  |     let staking: TestStakingContract; | ||||||
|  |     let weth: TestWethIntegrationContract; | ||||||
|  |     let singleFeeAmount: BigNumber; | ||||||
|  |  | ||||||
|  |     before(async () => { | ||||||
|  |         [owner, taker] = await env.getAccountAddressesAsync(); | ||||||
|  |         weth = await TestWethIntegrationContract.deployFrom0xArtifactAsync( | ||||||
|  |             artifacts.TestWethIntegration, | ||||||
|  |             env.provider, | ||||||
|  |             env.txDefaults, | ||||||
|  |             artifacts, | ||||||
|  |         ); | ||||||
|  |         staking = await TestStakingContract.deployFrom0xArtifactAsync( | ||||||
|  |             artifacts.TestStaking, | ||||||
|  |             env.provider, | ||||||
|  |             env.txDefaults, | ||||||
|  |             artifacts, | ||||||
|  |             constants.NULL_ADDRESS, // exchange address, which we don't know yet | ||||||
|  |             weth.address, | ||||||
|  |         ); | ||||||
|  |         protocolFees = await TestFixinProtocolFeesIntegrationContract.deployFrom0xArtifactAsync( | ||||||
|  |             artifacts.TestFixinProtocolFeesIntegration, | ||||||
|  |             env.provider, | ||||||
|  |             { ...env.txDefaults, from: taker }, | ||||||
|  |             artifacts, | ||||||
|  |             weth.address, | ||||||
|  |             staking.address, | ||||||
|  |             FEE_MULTIPLIER, | ||||||
|  |         ); | ||||||
|  |         await staking.addAuthorizedAddress(owner).awaitTransactionSuccessAsync(); | ||||||
|  |         await staking.addExchangeAddress(protocolFees.address).awaitTransactionSuccessAsync({ from: owner }); | ||||||
|  |         await weth.mint(taker, constants.ONE_ETHER).awaitTransactionSuccessAsync(); | ||||||
|  |         await weth.approve(protocolFees.address, constants.ONE_ETHER).awaitTransactionSuccessAsync({ from: taker }); | ||||||
|  |  | ||||||
|  |         singleFeeAmount = await protocolFees.getSingleProtocolFee().callAsync(); | ||||||
|  |     }); | ||||||
|  |  | ||||||
|  |     describe('fee collection integration', () => { | ||||||
|  |         const pool0 = constants.NULL_BYTES32; | ||||||
|  |         const poolId = hexUtils.random(); | ||||||
|  |  | ||||||
|  |         it('should collect fees for pool 0', async () => { | ||||||
|  |             await protocolFees.collectProtocolFee(pool0).awaitTransactionSuccessAsync({ value: singleFeeAmount }); | ||||||
|  |             await protocolFees.transferFeesForPool(pool0).awaitTransactionSuccessAsync(); | ||||||
|  |  | ||||||
|  |             // Fees in the pool bytes32(0) don't get attributed to a pool. | ||||||
|  |             await expect( | ||||||
|  |                 (await staking.getStakingPoolStatsThisEpoch(pool0).callAsync()).feesCollected, | ||||||
|  |             ).to.bignumber.equal(constants.ZERO_AMOUNT); | ||||||
|  |  | ||||||
|  |             // Expected amount is singleFeeAmount - 1 because we leave 1 wei of WETH behind for future gas savings. | ||||||
|  |             return expect(await weth.balanceOf(staking.address).callAsync()).to.bignumber.equal( | ||||||
|  |                 singleFeeAmount.minus(1), | ||||||
|  |             ); | ||||||
|  |         }); | ||||||
|  |  | ||||||
|  |         it('should collect fees for non-zero pool', async () => { | ||||||
|  |             const eth100 = constants.ONE_ETHER.multipliedBy(100); | ||||||
|  |             await staking.createTestPool(poolId, eth100, eth100).awaitTransactionSuccessAsync(); | ||||||
|  |  | ||||||
|  |             await protocolFees.collectProtocolFee(poolId).awaitTransactionSuccessAsync({ value: singleFeeAmount }); | ||||||
|  |             await protocolFees.transferFeesForPool(poolId).awaitTransactionSuccessAsync(); | ||||||
|  |  | ||||||
|  |             // Expected amount is singleFeeAmount - 1 because we leave 1 wei of WETH behind for future gas savings. | ||||||
|  |             return expect( | ||||||
|  |                 (await staking.getStakingPoolStatsThisEpoch(poolId).callAsync()).feesCollected, | ||||||
|  |             ).to.bignumber.equal(singleFeeAmount.minus(1)); | ||||||
|  |         }); | ||||||
|  |     }); | ||||||
|  | }); | ||||||
| @@ -11,11 +11,14 @@ | |||||||
|         "test/generated-artifacts/TestDydxUser.json", |         "test/generated-artifacts/TestDydxUser.json", | ||||||
|         "test/generated-artifacts/TestEth2Dai.json", |         "test/generated-artifacts/TestEth2Dai.json", | ||||||
|         "test/generated-artifacts/TestEth2DaiBridge.json", |         "test/generated-artifacts/TestEth2DaiBridge.json", | ||||||
|  |         "test/generated-artifacts/TestFixinProtocolFeesIntegration.json", | ||||||
|         "test/generated-artifacts/TestFramework.json", |         "test/generated-artifacts/TestFramework.json", | ||||||
|         "test/generated-artifacts/TestMainnetAggregatorFills.json", |         "test/generated-artifacts/TestMainnetAggregatorFills.json", | ||||||
|         "test/generated-artifacts/TestSignatureValidationWallet.json", |         "test/generated-artifacts/TestSignatureValidationWallet.json", | ||||||
|  |         "test/generated-artifacts/TestStaking.json", | ||||||
|         "test/generated-artifacts/TestUniswapBridge.json", |         "test/generated-artifacts/TestUniswapBridge.json", | ||||||
|         "test/generated-artifacts/TestUniswapExchange.json", |         "test/generated-artifacts/TestUniswapExchange.json", | ||||||
|         "test/generated-artifacts/TestUniswapExchangeFactory.json" |         "test/generated-artifacts/TestUniswapExchangeFactory.json", | ||||||
|  |         "test/generated-artifacts/TestWethIntegration.json" | ||||||
|     ] |     ] | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,4 +1,112 @@ | |||||||
| [ | [ | ||||||
|  |     { | ||||||
|  |         "timestamp": 1611648096, | ||||||
|  |         "version": "4.1.24", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1610510890, | ||||||
|  |         "version": "4.1.23", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1609802516, | ||||||
|  |         "version": "4.1.22", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608692071, | ||||||
|  |         "version": "4.1.21", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608245516, | ||||||
|  |         "version": "4.1.20", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608105788, | ||||||
|  |         "version": "4.1.19", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607485227, | ||||||
|  |         "version": "4.1.18", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607381756, | ||||||
|  |         "version": "4.1.17", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1606961263, | ||||||
|  |         "version": "4.1.16", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605763885, | ||||||
|  |         "version": "4.1.15", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605302002, | ||||||
|  |         "version": "4.1.14", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1604385937, | ||||||
|  |         "version": "4.1.13", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|         "timestamp": 1604376968, |         "timestamp": 1604376968, | ||||||
|         "version": "4.1.12", |         "version": "4.1.12", | ||||||
|   | |||||||
| @@ -5,6 +5,54 @@ Edit the package's CHANGELOG.json file only. | |||||||
|  |  | ||||||
| CHANGELOG | CHANGELOG | ||||||
|  |  | ||||||
|  | ## v4.1.24 - _January 26, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.1.23 - _January 13, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.1.22 - _January 4, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.1.21 - _December 23, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.1.20 - _December 17, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.1.19 - _December 16, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.1.18 - _December 9, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.1.17 - _December 7, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.1.16 - _December 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.1.15 - _November 19, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.1.14 - _November 13, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.1.13 - _November 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
| ## v4.1.12 - _November 3, 2020_ | ## v4.1.12 - _November 3, 2020_ | ||||||
|  |  | ||||||
|     * Dependencies updated |     * Dependencies updated | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "name": "@0x/contracts-multisig", |     "name": "@0x/contracts-multisig", | ||||||
|     "version": "4.1.12", |     "version": "4.1.24", | ||||||
|     "engines": { |     "engines": { | ||||||
|         "node": ">=6.12" |         "node": ">=6.12" | ||||||
|     }, |     }, | ||||||
| @@ -49,18 +49,18 @@ | |||||||
|     }, |     }, | ||||||
|     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/multisig", |     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/multisig", | ||||||
|     "devDependencies": { |     "devDependencies": { | ||||||
|         "@0x/abi-gen": "^5.4.7", |         "@0x/abi-gen": "^5.4.19", | ||||||
|         "@0x/contracts-asset-proxy": "^3.6.3", |         "@0x/contracts-asset-proxy": "^3.7.5", | ||||||
|         "@0x/contracts-erc20": "^3.2.6", |         "@0x/contracts-erc20": "^3.3.2", | ||||||
|         "@0x/contracts-gen": "2.0.18", |         "@0x/contracts-gen": "^2.0.30", | ||||||
|         "@0x/contracts-test-utils": "^5.3.9", |         "@0x/contracts-test-utils": "^5.3.20", | ||||||
|         "@0x/contracts-utils": "^4.5.6", |         "@0x/contracts-utils": "^4.7.2", | ||||||
|         "@0x/dev-utils": "^4.0.1", |         "@0x/dev-utils": "^4.2.1", | ||||||
|         "@0x/sol-compiler": "^4.2.7", |         "@0x/sol-compiler": "^4.5.2", | ||||||
|         "@0x/tslint-config": "^4.1.3", |         "@0x/tslint-config": "^4.1.3", | ||||||
|         "@0x/types": "^3.3.0", |         "@0x/types": "^3.3.1", | ||||||
|         "@0x/utils": "^6.1.0", |         "@0x/utils": "^6.2.0", | ||||||
|         "@0x/web3-wrapper": "^7.2.8", |         "@0x/web3-wrapper": "^7.4.1", | ||||||
|         "@types/lodash": "4.14.104", |         "@types/lodash": "4.14.104", | ||||||
|         "@types/mocha": "^5.2.7", |         "@types/mocha": "^5.2.7", | ||||||
|         "@types/node": "12.12.54", |         "@types/node": "12.12.54", | ||||||
| @@ -78,9 +78,9 @@ | |||||||
|         "typescript": "3.0.1" |         "typescript": "3.0.1" | ||||||
|     }, |     }, | ||||||
|     "dependencies": { |     "dependencies": { | ||||||
|         "@0x/base-contract": "^6.2.11", |         "@0x/base-contract": "^6.2.18", | ||||||
|         "@0x/typescript-typings": "^5.1.5", |         "@0x/typescript-typings": "^5.1.6", | ||||||
|         "ethereum-types": "^3.3.3" |         "ethereum-types": "^3.4.0" | ||||||
|     }, |     }, | ||||||
|     "publishConfig": { |     "publishConfig": { | ||||||
|         "access": "public" |         "access": "public" | ||||||
|   | |||||||
| @@ -1,4 +1,112 @@ | |||||||
| [ | [ | ||||||
|  |     { | ||||||
|  |         "timestamp": 1611648096, | ||||||
|  |         "version": "2.0.31", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1610510890, | ||||||
|  |         "version": "2.0.30", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1609802516, | ||||||
|  |         "version": "2.0.29", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608692071, | ||||||
|  |         "version": "2.0.28", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608245516, | ||||||
|  |         "version": "2.0.27", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608105788, | ||||||
|  |         "version": "2.0.26", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607485227, | ||||||
|  |         "version": "2.0.25", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607381756, | ||||||
|  |         "version": "2.0.24", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1606961263, | ||||||
|  |         "version": "2.0.23", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605763885, | ||||||
|  |         "version": "2.0.22", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605302002, | ||||||
|  |         "version": "2.0.21", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1604385937, | ||||||
|  |         "version": "2.0.20", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|         "timestamp": 1604376968, |         "timestamp": 1604376968, | ||||||
|         "version": "2.0.19", |         "version": "2.0.19", | ||||||
|   | |||||||
| @@ -5,6 +5,54 @@ Edit the package's CHANGELOG.json file only. | |||||||
|  |  | ||||||
| CHANGELOG | CHANGELOG | ||||||
|  |  | ||||||
|  | ## v2.0.31 - _January 26, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.0.30 - _January 13, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.0.29 - _January 4, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.0.28 - _December 23, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.0.27 - _December 17, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.0.26 - _December 16, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.0.25 - _December 9, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.0.24 - _December 7, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.0.23 - _December 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.0.22 - _November 19, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.0.21 - _November 13, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v2.0.20 - _November 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
| ## v2.0.19 - _November 3, 2020_ | ## v2.0.19 - _November 3, 2020_ | ||||||
|  |  | ||||||
|     * Dependencies updated |     * Dependencies updated | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ | |||||||
|     "artifactsDir": "./test/generated-artifacts", |     "artifactsDir": "./test/generated-artifacts", | ||||||
|     "contractsDir": "./contracts", |     "contractsDir": "./contracts", | ||||||
|     "useDockerisedSolc": false, |     "useDockerisedSolc": false, | ||||||
|     "isOfflineMode": true, |     "isOfflineMode": false, | ||||||
|     "shouldSaveStandardInput": true, |     "shouldSaveStandardInput": true, | ||||||
|     "compilerSettings": { |     "compilerSettings": { | ||||||
|         "evmVersion": "istanbul", |         "evmVersion": "istanbul", | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "name": "@0x/contracts-staking", |     "name": "@0x/contracts-staking", | ||||||
|     "version": "2.0.19", |     "version": "2.0.31", | ||||||
|     "engines": { |     "engines": { | ||||||
|         "node": ">=6.12" |         "node": ">=6.12" | ||||||
|     }, |     }, | ||||||
| @@ -53,20 +53,20 @@ | |||||||
|     }, |     }, | ||||||
|     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/tokens", |     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/tokens", | ||||||
|     "devDependencies": { |     "devDependencies": { | ||||||
|         "@0x/abi-gen": "^5.4.7", |         "@0x/abi-gen": "^5.4.19", | ||||||
|         "@0x/contracts-asset-proxy": "^3.6.3", |         "@0x/contracts-asset-proxy": "^3.7.5", | ||||||
|         "@0x/contracts-dev-utils": "^1.3.10", |         "@0x/contracts-dev-utils": "^1.3.22", | ||||||
|         "@0x/contracts-erc20": "^3.2.6", |         "@0x/contracts-erc20": "^3.3.2", | ||||||
|         "@0x/contracts-exchange-libs": "^4.3.12", |         "@0x/contracts-exchange-libs": "^4.3.23", | ||||||
|         "@0x/contracts-gen": "2.0.18", |         "@0x/contracts-gen": "^2.0.30", | ||||||
|         "@0x/contracts-utils": "^4.5.6", |         "@0x/contracts-utils": "^4.7.2", | ||||||
|         "@0x/dev-utils": "^4.0.1", |         "@0x/dev-utils": "^4.2.1", | ||||||
|         "@0x/order-utils": "^10.4.4", |         "@0x/order-utils": "^10.4.15", | ||||||
|         "@0x/sol-compiler": "^4.2.7", |         "@0x/sol-compiler": "^4.5.2", | ||||||
|         "@0x/ts-doc-gen": "^0.0.28", |         "@0x/ts-doc-gen": "^0.0.28", | ||||||
|         "@0x/tslint-config": "^4.1.3", |         "@0x/tslint-config": "^4.1.3", | ||||||
|         "@0x/types": "^3.3.0", |         "@0x/types": "^3.3.1", | ||||||
|         "@0x/web3-wrapper": "^7.2.8", |         "@0x/web3-wrapper": "^7.4.1", | ||||||
|         "@types/lodash": "4.14.104", |         "@types/lodash": "4.14.104", | ||||||
|         "@types/node": "12.12.54", |         "@types/node": "12.12.54", | ||||||
|         "chai": "^4.0.1", |         "chai": "^4.0.1", | ||||||
| @@ -87,11 +87,11 @@ | |||||||
|         "typescript": "3.0.1" |         "typescript": "3.0.1" | ||||||
|     }, |     }, | ||||||
|     "dependencies": { |     "dependencies": { | ||||||
|         "@0x/base-contract": "^6.2.11", |         "@0x/base-contract": "^6.2.18", | ||||||
|         "@0x/contracts-test-utils": "^5.3.9", |         "@0x/contracts-test-utils": "^5.3.20", | ||||||
|         "@0x/typescript-typings": "^5.1.5", |         "@0x/typescript-typings": "^5.1.6", | ||||||
|         "@0x/utils": "^6.1.0", |         "@0x/utils": "^6.2.0", | ||||||
|         "ethereum-types": "^3.3.3", |         "ethereum-types": "^3.4.0", | ||||||
|         "ethereumjs-util": "^5.1.1" |         "ethereumjs-util": "^5.1.1" | ||||||
|     }, |     }, | ||||||
|     "publishConfig": { |     "publishConfig": { | ||||||
|   | |||||||
| @@ -1,4 +1,103 @@ | |||||||
| [ | [ | ||||||
|  |     { | ||||||
|  |         "timestamp": 1611648096, | ||||||
|  |         "version": "5.3.20", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1610510890, | ||||||
|  |         "version": "5.3.19", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1609802516, | ||||||
|  |         "version": "5.3.18", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608692071, | ||||||
|  |         "version": "5.3.17", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608245516, | ||||||
|  |         "version": "5.3.16", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607485227, | ||||||
|  |         "version": "5.3.15", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607381756, | ||||||
|  |         "version": "5.3.14", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1606961263, | ||||||
|  |         "version": "5.3.13", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605763885, | ||||||
|  |         "version": "5.3.12", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605302002, | ||||||
|  |         "version": "5.3.11", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1604385937, | ||||||
|  |         "version": "5.3.10", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|         "timestamp": 1604376968, |         "timestamp": 1604376968, | ||||||
|         "version": "5.3.9", |         "version": "5.3.9", | ||||||
|   | |||||||
| @@ -5,6 +5,50 @@ Edit the package's CHANGELOG.json file only. | |||||||
|  |  | ||||||
| CHANGELOG | CHANGELOG | ||||||
|  |  | ||||||
|  | ## v5.3.20 - _January 26, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v5.3.19 - _January 13, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v5.3.18 - _January 4, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v5.3.17 - _December 23, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v5.3.16 - _December 17, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v5.3.15 - _December 9, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v5.3.14 - _December 7, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v5.3.13 - _December 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v5.3.12 - _November 19, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v5.3.11 - _November 13, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v5.3.10 - _November 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
| ## v5.3.9 - _November 3, 2020_ | ## v5.3.9 - _November 3, 2020_ | ||||||
|  |  | ||||||
|     * Dependencies updated |     * Dependencies updated | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "name": "@0x/contracts-test-utils", |     "name": "@0x/contracts-test-utils", | ||||||
|     "version": "5.3.9", |     "version": "5.3.20", | ||||||
|     "engines": { |     "engines": { | ||||||
|         "node": ">=6.12" |         "node": ">=6.12" | ||||||
|     }, |     }, | ||||||
| @@ -34,7 +34,7 @@ | |||||||
|     }, |     }, | ||||||
|     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/test-utils", |     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/test-utils", | ||||||
|     "devDependencies": { |     "devDependencies": { | ||||||
|         "@0x/sol-compiler": "^4.2.7", |         "@0x/sol-compiler": "^4.5.2", | ||||||
|         "@0x/tslint-config": "^4.1.3", |         "@0x/tslint-config": "^4.1.3", | ||||||
|         "npm-run-all": "^4.1.2", |         "npm-run-all": "^4.1.2", | ||||||
|         "shx": "^0.2.2", |         "shx": "^0.2.2", | ||||||
| @@ -42,20 +42,20 @@ | |||||||
|         "typescript": "3.0.1" |         "typescript": "3.0.1" | ||||||
|     }, |     }, | ||||||
|     "dependencies": { |     "dependencies": { | ||||||
|         "@0x/assert": "^3.0.17", |         "@0x/assert": "^3.0.21", | ||||||
|         "@0x/base-contract": "^6.2.11", |         "@0x/base-contract": "^6.2.18", | ||||||
|         "@0x/contract-addresses": "^5.1.0", |         "@0x/contract-addresses": "^5.9.0", | ||||||
|         "@0x/dev-utils": "^4.0.1", |         "@0x/dev-utils": "^4.2.1", | ||||||
|         "@0x/json-schemas": "^5.3.3", |         "@0x/json-schemas": "^5.4.1", | ||||||
|         "@0x/order-utils": "^10.4.4", |         "@0x/order-utils": "^10.4.15", | ||||||
|         "@0x/sol-coverage": "^4.0.18", |         "@0x/sol-coverage": "^4.0.29", | ||||||
|         "@0x/sol-profiler": "^4.1.8", |         "@0x/sol-profiler": "^4.1.19", | ||||||
|         "@0x/sol-trace": "^3.0.18", |         "@0x/sol-trace": "^3.0.29", | ||||||
|         "@0x/subproviders": "^6.1.9", |         "@0x/subproviders": "^6.4.1", | ||||||
|         "@0x/types": "^3.3.0", |         "@0x/types": "^3.3.1", | ||||||
|         "@0x/typescript-typings": "^5.1.5", |         "@0x/typescript-typings": "^5.1.6", | ||||||
|         "@0x/utils": "^6.1.0", |         "@0x/utils": "^6.2.0", | ||||||
|         "@0x/web3-wrapper": "^7.2.8", |         "@0x/web3-wrapper": "^7.4.1", | ||||||
|         "@types/bn.js": "^4.11.0", |         "@types/bn.js": "^4.11.0", | ||||||
|         "@types/js-combinatorics": "^0.5.29", |         "@types/js-combinatorics": "^0.5.29", | ||||||
|         "@types/lodash": "4.14.104", |         "@types/lodash": "4.14.104", | ||||||
| @@ -67,7 +67,7 @@ | |||||||
|         "chai-bignumber": "^3.0.0", |         "chai-bignumber": "^3.0.0", | ||||||
|         "decimal.js": "^10.2.0", |         "decimal.js": "^10.2.0", | ||||||
|         "dirty-chai": "^2.0.1", |         "dirty-chai": "^2.0.1", | ||||||
|         "ethereum-types": "^3.3.3", |         "ethereum-types": "^3.4.0", | ||||||
|         "ethereumjs-util": "^5.1.1", |         "ethereumjs-util": "^5.1.1", | ||||||
|         "ethers": "~4.0.4", |         "ethers": "~4.0.4", | ||||||
|         "js-combinatorics": "^0.5.3", |         "js-combinatorics": "^0.5.3", | ||||||
|   | |||||||
| @@ -1,4 +1,109 @@ | |||||||
| [ | [ | ||||||
|  |     { | ||||||
|  |         "timestamp": 1611648096, | ||||||
|  |         "version": "4.7.2", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1610510890, | ||||||
|  |         "version": "4.7.1", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "4.7.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Add `LibSafeMathV06.safeDowncastToUint128()`", | ||||||
|  |                 "pr": 97 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Add SPDX license identifiers to solidity files", | ||||||
|  |                 "pr": 105 | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1609802516 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608692071, | ||||||
|  |         "version": "4.6.5", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1608245516, | ||||||
|  |         "version": "4.6.4", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607485227, | ||||||
|  |         "version": "4.6.3", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607381756, | ||||||
|  |         "version": "4.6.2", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1606961263, | ||||||
|  |         "version": "4.6.1", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "4.6.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Add `uint128` functions to `LibSafeMathV06`", | ||||||
|  |                 "pr": 27 | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1605763885 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1605302002, | ||||||
|  |         "version": "4.5.8", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1604385937, | ||||||
|  |         "version": "4.5.7", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|         "timestamp": 1604376968, |         "timestamp": 1604376968, | ||||||
|         "version": "4.5.6", |         "version": "4.5.6", | ||||||
|   | |||||||
| @@ -5,6 +5,51 @@ Edit the package's CHANGELOG.json file only. | |||||||
|  |  | ||||||
| CHANGELOG | CHANGELOG | ||||||
|  |  | ||||||
|  | ## v4.7.2 - _January 26, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.7.1 - _January 13, 2021_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.7.0 - _January 4, 2021_ | ||||||
|  |  | ||||||
|  |     * Add `LibSafeMathV06.safeDowncastToUint128()` (#97) | ||||||
|  |     * Add SPDX license identifiers to solidity files (#105) | ||||||
|  |  | ||||||
|  | ## v4.6.5 - _December 23, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.6.4 - _December 17, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.6.3 - _December 9, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.6.2 - _December 7, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.6.1 - _December 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.6.0 - _November 19, 2020_ | ||||||
|  |  | ||||||
|  |     * Add `uint128` functions to `LibSafeMathV06` (#27) | ||||||
|  |  | ||||||
|  | ## v4.5.8 - _November 13, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v4.5.7 - _November 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
| ## v4.5.6 - _November 3, 2020_ | ## v4.5.6 - _November 3, 2020_ | ||||||
|  |  | ||||||
|     * Dependencies updated |     * Dependencies updated | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2019 ZeroEx Intl. |   Copyright 2019 ZeroEx Intl. | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
| @@ -105,4 +106,100 @@ library LibSafeMathV06 { | |||||||
|     { |     { | ||||||
|         return a < b ? a : b; |         return a < b ? a : b; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     function safeMul128(uint128 a, uint128 b) | ||||||
|  |         internal | ||||||
|  |         pure | ||||||
|  |         returns (uint128) | ||||||
|  |     { | ||||||
|  |         if (a == 0) { | ||||||
|  |             return 0; | ||||||
|  |         } | ||||||
|  |         uint128 c = a * b; | ||||||
|  |         if (c / a != b) { | ||||||
|  |             LibRichErrorsV06.rrevert(LibSafeMathRichErrorsV06.Uint256BinOpError( | ||||||
|  |                 LibSafeMathRichErrorsV06.BinOpErrorCodes.MULTIPLICATION_OVERFLOW, | ||||||
|  |                 a, | ||||||
|  |                 b | ||||||
|  |             )); | ||||||
|  |         } | ||||||
|  |         return c; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     function safeDiv128(uint128 a, uint128 b) | ||||||
|  |         internal | ||||||
|  |         pure | ||||||
|  |         returns (uint128) | ||||||
|  |     { | ||||||
|  |         if (b == 0) { | ||||||
|  |             LibRichErrorsV06.rrevert(LibSafeMathRichErrorsV06.Uint256BinOpError( | ||||||
|  |                 LibSafeMathRichErrorsV06.BinOpErrorCodes.DIVISION_BY_ZERO, | ||||||
|  |                 a, | ||||||
|  |                 b | ||||||
|  |             )); | ||||||
|  |         } | ||||||
|  |         uint128 c = a / b; | ||||||
|  |         return c; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     function safeSub128(uint128 a, uint128 b) | ||||||
|  |         internal | ||||||
|  |         pure | ||||||
|  |         returns (uint128) | ||||||
|  |     { | ||||||
|  |         if (b > a) { | ||||||
|  |             LibRichErrorsV06.rrevert(LibSafeMathRichErrorsV06.Uint256BinOpError( | ||||||
|  |                 LibSafeMathRichErrorsV06.BinOpErrorCodes.SUBTRACTION_UNDERFLOW, | ||||||
|  |                 a, | ||||||
|  |                 b | ||||||
|  |             )); | ||||||
|  |         } | ||||||
|  |         return a - b; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     function safeAdd128(uint128 a, uint128 b) | ||||||
|  |         internal | ||||||
|  |         pure | ||||||
|  |         returns (uint128) | ||||||
|  |     { | ||||||
|  |         uint128 c = a + b; | ||||||
|  |         if (c < a) { | ||||||
|  |             LibRichErrorsV06.rrevert(LibSafeMathRichErrorsV06.Uint256BinOpError( | ||||||
|  |                 LibSafeMathRichErrorsV06.BinOpErrorCodes.ADDITION_OVERFLOW, | ||||||
|  |                 a, | ||||||
|  |                 b | ||||||
|  |             )); | ||||||
|  |         } | ||||||
|  |         return c; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     function max128(uint128 a, uint128 b) | ||||||
|  |         internal | ||||||
|  |         pure | ||||||
|  |         returns (uint128) | ||||||
|  |     { | ||||||
|  |         return a >= b ? a : b; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     function min128(uint128 a, uint128 b) | ||||||
|  |         internal | ||||||
|  |         pure | ||||||
|  |         returns (uint128) | ||||||
|  |     { | ||||||
|  |         return a < b ? a : b; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     function safeDowncastToUint128(uint256 a) | ||||||
|  |         internal | ||||||
|  |         pure | ||||||
|  |         returns (uint128) | ||||||
|  |     { | ||||||
|  |         if (a > type(uint128).max) { | ||||||
|  |             LibRichErrorsV06.rrevert(LibSafeMathRichErrorsV06.Uint256DowncastError( | ||||||
|  |                 LibSafeMathRichErrorsV06.DowncastErrorCodes.VALUE_TOO_LARGE_TO_DOWNCAST_TO_UINT128, | ||||||
|  |                 a | ||||||
|  |             )); | ||||||
|  |         } | ||||||
|  |         return uint128(a); | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2019 ZeroEx Intl. |   Copyright 2019 ZeroEx Intl. | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
| @@ -39,7 +40,8 @@ library LibSafeMathRichErrorsV06 { | |||||||
|     enum DowncastErrorCodes { |     enum DowncastErrorCodes { | ||||||
|         VALUE_TOO_LARGE_TO_DOWNCAST_TO_UINT32, |         VALUE_TOO_LARGE_TO_DOWNCAST_TO_UINT32, | ||||||
|         VALUE_TOO_LARGE_TO_DOWNCAST_TO_UINT64, |         VALUE_TOO_LARGE_TO_DOWNCAST_TO_UINT64, | ||||||
|         VALUE_TOO_LARGE_TO_DOWNCAST_TO_UINT96 |         VALUE_TOO_LARGE_TO_DOWNCAST_TO_UINT96, | ||||||
|  |         VALUE_TOO_LARGE_TO_DOWNCAST_TO_UINT128 | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     // solhint-disable func-name-mixedcase |     // solhint-disable func-name-mixedcase | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "name": "@0x/contracts-utils", |     "name": "@0x/contracts-utils", | ||||||
|     "version": "4.5.6", |     "version": "4.7.2", | ||||||
|     "engines": { |     "engines": { | ||||||
|         "node": ">=6.12" |         "node": ">=6.12" | ||||||
|     }, |     }, | ||||||
| @@ -50,15 +50,15 @@ | |||||||
|     }, |     }, | ||||||
|     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/utils", |     "homepage": "https://github.com/0xProject/protocol/tree/main/contracts/utils", | ||||||
|     "devDependencies": { |     "devDependencies": { | ||||||
|         "@0x/abi-gen": "^5.4.7", |         "@0x/abi-gen": "^5.4.19", | ||||||
|         "@0x/contracts-gen": "2.0.18", |         "@0x/contracts-gen": "^2.0.30", | ||||||
|         "@0x/contracts-test-utils": "^5.3.9", |         "@0x/contracts-test-utils": "^5.3.20", | ||||||
|         "@0x/dev-utils": "^4.0.1", |         "@0x/dev-utils": "^4.2.1", | ||||||
|         "@0x/order-utils": "^10.4.4", |         "@0x/order-utils": "^10.4.15", | ||||||
|         "@0x/sol-compiler": "^4.2.7", |         "@0x/sol-compiler": "^4.5.2", | ||||||
|         "@0x/tslint-config": "^4.1.3", |         "@0x/tslint-config": "^4.1.3", | ||||||
|         "@0x/types": "^3.3.0", |         "@0x/types": "^3.3.1", | ||||||
|         "@0x/web3-wrapper": "^7.2.8", |         "@0x/web3-wrapper": "^7.4.1", | ||||||
|         "@types/bn.js": "^4.11.0", |         "@types/bn.js": "^4.11.0", | ||||||
|         "@types/lodash": "4.14.104", |         "@types/lodash": "4.14.104", | ||||||
|         "@types/mocha": "^5.2.7", |         "@types/mocha": "^5.2.7", | ||||||
| @@ -79,11 +79,11 @@ | |||||||
|         "typescript": "3.0.1" |         "typescript": "3.0.1" | ||||||
|     }, |     }, | ||||||
|     "dependencies": { |     "dependencies": { | ||||||
|         "@0x/base-contract": "^6.2.11", |         "@0x/base-contract": "^6.2.18", | ||||||
|         "@0x/typescript-typings": "^5.1.5", |         "@0x/typescript-typings": "^5.1.6", | ||||||
|         "@0x/utils": "^6.1.0", |         "@0x/utils": "^6.2.0", | ||||||
|         "bn.js": "^4.11.8", |         "bn.js": "^4.11.8", | ||||||
|         "ethereum-types": "^3.3.3" |         "ethereum-types": "^3.4.0" | ||||||
|     }, |     }, | ||||||
|     "publishConfig": { |     "publishConfig": { | ||||||
|         "access": "public" |         "access": "public" | ||||||
|   | |||||||
| @@ -8,3 +8,4 @@ | |||||||
| # Blacklist tests in lib | # Blacklist tests in lib | ||||||
| /lib/test/* | /lib/test/* | ||||||
| # Package specific ignore | # Package specific ignore | ||||||
|  | /lib/scripts/* | ||||||
|   | |||||||
| @@ -1,4 +1,232 @@ | |||||||
| [ | [ | ||||||
|  |     { | ||||||
|  |         "version": "0.18.1", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Swallow reverts in `batchGetLimitOrderRelevantStates()` and `batchGetRfqOrderRelevantStates()`", | ||||||
|  |                 "pr": 117 | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1611648096 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "0.18.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Use consistent returndatasize checks in UniswapFeature", | ||||||
|  |                 "pr": 96 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Remove `MetaTransactionsFeature._executeMetaTransaction()` and `SignatureValidatorFeature`", | ||||||
|  |                 "pr": 109 | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1610510890 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "0.17.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Add DevUtils-like functions to `NativeOrdersFeature`", | ||||||
|  |                 "pr": 97 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Add SPDX license identifiers to solidity files", | ||||||
|  |                 "pr": 105 | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1609802516 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "0.16.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Fix CryptoCom rollup" | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1608692071 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "0.15.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Add MixinBancor to BridgeAdapter", | ||||||
|  |                 "pr": 91 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Add MixinCoFiX to BridgeAdapter", | ||||||
|  |                 "pr": 92 | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1608245516 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "0.14.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Use the `MetaTransaction` class from `@0x/protocol-utils` in tests.", | ||||||
|  |                 "pr": 90 | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1608149382 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "0.13.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Address audit feedback in UniswapFeature", | ||||||
|  |                 "pr": 82 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Always transfer `msg.value` to the liquidity provider contract in LiquidityProviderFeature to", | ||||||
|  |                 "pr": 82 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Remove backwards compatibility with old PLP/bridge interface in `LiquidityProviderFeature` and `MixinZeroExBridge`", | ||||||
|  |                 "pr": 85 | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1608105788 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "0.12.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Add test for selector collisions on the proxy", | ||||||
|  |                 "pr": 74 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Move tooling out into `@0x/protocol-utils`.", | ||||||
|  |                 "pr": 76 | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1607485227 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1607381756, | ||||||
|  |         "version": "0.11.1", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "0.11.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Turn `LibTokenSpender` into `FixinTokenSpender`", | ||||||
|  |                 "pr": 38 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Use bloom filters to check if a token is greedy and do not optimistically fall through transferFrom() if so", | ||||||
|  |                 "pr": 38 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Revert to original proxy implementation", | ||||||
|  |                 "pr": 38 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Fix incorrect cancel order event param", | ||||||
|  |                 "pr": 38 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Add a gas limit to first `LibTokenSpender` and `UniswapFeature` transfer", | ||||||
|  |                 "pr": 38 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Convert metatransactions to use `LibSignature`", | ||||||
|  |                 "pr": 31 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Add metatransaction support for limit orders", | ||||||
|  |                 "pr": 44 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Require RFQ orders to specify a transaction origin, and allow approved alternative addresses", | ||||||
|  |                 "pr": 47 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Do not try to pull all tokens if selling all ETH in `TransformERC20Feature`", | ||||||
|  |                 "pr": 46 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Remove protocol fees from all RFQ orders and add `taker` field to RFQ orders", | ||||||
|  |                 "pr": 45 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Fix getRfqOrderInfo() to return status INVALID when missing txOrigin", | ||||||
|  |                 "pr": 50 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Remove calldata signing functionality", | ||||||
|  |                 "pr": 51 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Add a permissionless transformer deployer", | ||||||
|  |                 "pr": 55 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Add Crypto.com to `BridgeAdapter`", | ||||||
|  |                 "pr": 43 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Use `FeeCollectorController` contract for deploying `FeeCollector`s", | ||||||
|  |                 "pr": 59 | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1606961263 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "0.10.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Add `checkAllowance` flag to LibTokenSpender.spendERC20Tokens", | ||||||
|  |                 "pr": 39 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Use new `checkAllowance` flag in LiquidityProviderFeature, TransformERC20Feature, and MetaTransactionsFeature", | ||||||
|  |                 "pr": 39 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Add native orders features", | ||||||
|  |                 "pr": 27 | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1605763885 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "0.9.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Rewrite the ZeroEx contract in Yul", | ||||||
|  |                 "pr": 23 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Update LiquidityProviderFeature to use off-chain registry and sandbox", | ||||||
|  |                 "pr": 16 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Update ILiquidityProvider interface", | ||||||
|  |                 "pr": 16 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Update ProtocolFeeUnfunded event to emit order hash", | ||||||
|  |                 "pr": 16 | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1605302002 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "0.8.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Trust LP boughtAmount return value", | ||||||
|  |                 "pr": 29 | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1604385937 | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|         "version": "0.7.0", |         "version": "0.7.0", | ||||||
|         "changes": [ |         "changes": [ | ||||||
| @@ -23,6 +251,10 @@ | |||||||
|             { |             { | ||||||
|                 "note": "Add `LibSignature` library", |                 "note": "Add `LibSignature` library", | ||||||
|                 "pr": 21 |                 "pr": 21 | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |                 "note": "Add `LimitOrdersFeature`", | ||||||
|  |                 "pr": 27 | ||||||
|             } |             } | ||||||
|         ], |         ], | ||||||
|         "timestamp": 1604355662 |         "timestamp": 1604355662 | ||||||
|   | |||||||
| @@ -5,6 +5,83 @@ Edit the package's CHANGELOG.json file only. | |||||||
|  |  | ||||||
| CHANGELOG | CHANGELOG | ||||||
|  |  | ||||||
|  | ## v0.18.1 - _January 26, 2021_ | ||||||
|  |  | ||||||
|  |     * Swallow reverts in `batchGetLimitOrderRelevantStates()` and `batchGetRfqOrderRelevantStates()` (#117) | ||||||
|  |  | ||||||
|  | ## v0.18.0 - _January 13, 2021_ | ||||||
|  |  | ||||||
|  |     * Use consistent returndatasize checks in UniswapFeature (#96) | ||||||
|  |     * Remove `MetaTransactionsFeature._executeMetaTransaction()` and `SignatureValidatorFeature` (#109) | ||||||
|  |  | ||||||
|  | ## v0.17.0 - _January 4, 2021_ | ||||||
|  |  | ||||||
|  |     * Add DevUtils-like functions to `NativeOrdersFeature` (#97) | ||||||
|  |     * Add SPDX license identifiers to solidity files (#105) | ||||||
|  |  | ||||||
|  | ## v0.16.0 - _December 23, 2020_ | ||||||
|  |  | ||||||
|  |     * Fix CryptoCom rollup | ||||||
|  |  | ||||||
|  | ## v0.15.0 - _December 17, 2020_ | ||||||
|  |  | ||||||
|  |     * Add MixinBancor to BridgeAdapter (#91) | ||||||
|  |     * Add MixinCoFiX to BridgeAdapter (#92) | ||||||
|  |  | ||||||
|  | ## v0.14.0 - _December 16, 2020_ | ||||||
|  |  | ||||||
|  |     * Use the `MetaTransaction` class from `@0x/protocol-utils` in tests. (#90) | ||||||
|  |  | ||||||
|  | ## v0.13.0 - _December 16, 2020_ | ||||||
|  |  | ||||||
|  |     * Address audit feedback in UniswapFeature (#82) | ||||||
|  |     * Always transfer `msg.value` to the liquidity provider contract in LiquidityProviderFeature to (#82) | ||||||
|  |     * Remove backwards compatibility with old PLP/bridge interface in `LiquidityProviderFeature` and `MixinZeroExBridge` (#85) | ||||||
|  |  | ||||||
|  | ## v0.12.0 - _December 9, 2020_ | ||||||
|  |  | ||||||
|  |     * Add test for selector collisions on the proxy (#74) | ||||||
|  |     * Move tooling out into `@0x/protocol-utils`. (#76) | ||||||
|  |  | ||||||
|  | ## v0.11.1 - _December 7, 2020_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v0.11.0 - _December 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Turn `LibTokenSpender` into `FixinTokenSpender` (#38) | ||||||
|  |     * Use bloom filters to check if a token is greedy and do not optimistically fall through transferFrom() if so (#38) | ||||||
|  |     * Revert to original proxy implementation (#38) | ||||||
|  |     * Fix incorrect cancel order event param (#38) | ||||||
|  |     * Add a gas limit to first `LibTokenSpender` and `UniswapFeature` transfer (#38) | ||||||
|  |     * Convert metatransactions to use `LibSignature` (#31) | ||||||
|  |     * Add metatransaction support for limit orders (#44) | ||||||
|  |     * Require RFQ orders to specify a transaction origin, and allow approved alternative addresses (#47) | ||||||
|  |     * Do not try to pull all tokens if selling all ETH in `TransformERC20Feature` (#46) | ||||||
|  |     * Remove protocol fees from all RFQ orders and add `taker` field to RFQ orders (#45) | ||||||
|  |     * Fix getRfqOrderInfo() to return status INVALID when missing txOrigin (#50) | ||||||
|  |     * Remove calldata signing functionality (#51) | ||||||
|  |     * Add a permissionless transformer deployer (#55) | ||||||
|  |     * Add Crypto.com to `BridgeAdapter` (#43) | ||||||
|  |     * Use `FeeCollectorController` contract for deploying `FeeCollector`s (#59) | ||||||
|  |  | ||||||
|  | ## v0.10.0 - _November 19, 2020_ | ||||||
|  |  | ||||||
|  |     * Add `checkAllowance` flag to LibTokenSpender.spendERC20Tokens (#39) | ||||||
|  |     * Use new `checkAllowance` flag in LiquidityProviderFeature, TransformERC20Feature, and MetaTransactionsFeature (#39) | ||||||
|  |     * Add native orders features (#27) | ||||||
|  |  | ||||||
|  | ## v0.9.0 - _November 13, 2020_ | ||||||
|  |  | ||||||
|  |     * Rewrite the ZeroEx contract in Yul (#23) | ||||||
|  |     * Update LiquidityProviderFeature to use off-chain registry and sandbox (#16) | ||||||
|  |     * Update ILiquidityProvider interface (#16) | ||||||
|  |     * Update ProtocolFeeUnfunded event to emit order hash (#16) | ||||||
|  |  | ||||||
|  | ## v0.8.0 - _November 3, 2020_ | ||||||
|  |  | ||||||
|  |     * Trust LP boughtAmount return value (#29) | ||||||
|  |  | ||||||
| ## v0.7.0 - _November 3, 2020_ | ## v0.7.0 - _November 3, 2020_ | ||||||
|  |  | ||||||
|     * Change `ProtocolFeeUnfunded` event in FQT (#28) |     * Change `ProtocolFeeUnfunded` event in FQT (#28) | ||||||
| @@ -14,6 +91,7 @@ CHANGELOG | |||||||
|  |  | ||||||
|     * Add support for collecting protocol fees in ETH or WETH (#2) |     * Add support for collecting protocol fees in ETH or WETH (#2) | ||||||
|     * Add `LibSignature` library (#21) |     * Add `LibSignature` library (#21) | ||||||
|  |     * Add `LimitOrdersFeature` (#27) | ||||||
|  |  | ||||||
| ## v0.5.1 - _October 28, 2020_ | ## v0.5.1 - _October 28, 2020_ | ||||||
|  |  | ||||||
|   | |||||||
| @@ -4,6 +4,7 @@ | |||||||
|     "useDockerisedSolc": false, |     "useDockerisedSolc": false, | ||||||
|     "isOfflineMode": false, |     "isOfflineMode": false, | ||||||
|     "shouldSaveStandardInput": true, |     "shouldSaveStandardInput": true, | ||||||
|  |     "shouldCompileIndependently": true, | ||||||
|     "compilerSettings": { |     "compilerSettings": { | ||||||
|         "evmVersion": "istanbul", |         "evmVersion": "istanbul", | ||||||
|         "optimizer": { |         "optimizer": { | ||||||
| @@ -19,7 +20,8 @@ | |||||||
|                     "evm.bytecode.object", |                     "evm.bytecode.object", | ||||||
|                     "evm.bytecode.sourceMap", |                     "evm.bytecode.sourceMap", | ||||||
|                     "evm.deployedBytecode.object", |                     "evm.deployedBytecode.object", | ||||||
|                     "evm.deployedBytecode.sourceMap" |                     "evm.deployedBytecode.sourceMap", | ||||||
|  |                     "evm.methodIdentifiers" | ||||||
|                 ] |                 ] | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
| @@ -22,11 +23,11 @@ pragma experimental ABIEncoderV2; | |||||||
| import "./features/IOwnableFeature.sol"; | import "./features/IOwnableFeature.sol"; | ||||||
| import "./features/ISimpleFunctionRegistryFeature.sol"; | import "./features/ISimpleFunctionRegistryFeature.sol"; | ||||||
| import "./features/ITokenSpenderFeature.sol"; | import "./features/ITokenSpenderFeature.sol"; | ||||||
| import "./features/ISignatureValidatorFeature.sol"; |  | ||||||
| import "./features/ITransformERC20Feature.sol"; | import "./features/ITransformERC20Feature.sol"; | ||||||
| import "./features/IMetaTransactionsFeature.sol"; | import "./features/IMetaTransactionsFeature.sol"; | ||||||
| import "./features/IUniswapFeature.sol"; | import "./features/IUniswapFeature.sol"; | ||||||
| import "./features/ILiquidityProviderFeature.sol"; | import "./features/ILiquidityProviderFeature.sol"; | ||||||
|  | import "./features/INativeOrdersFeature.sol"; | ||||||
|  |  | ||||||
|  |  | ||||||
| /// @dev Interface for a fully featured Exchange Proxy. | /// @dev Interface for a fully featured Exchange Proxy. | ||||||
| @@ -34,24 +35,14 @@ interface IZeroEx is | |||||||
|     IOwnableFeature, |     IOwnableFeature, | ||||||
|     ISimpleFunctionRegistryFeature, |     ISimpleFunctionRegistryFeature, | ||||||
|     ITokenSpenderFeature, |     ITokenSpenderFeature, | ||||||
|     ISignatureValidatorFeature, |  | ||||||
|     ITransformERC20Feature, |     ITransformERC20Feature, | ||||||
|     IMetaTransactionsFeature, |     IMetaTransactionsFeature, | ||||||
|     IUniswapFeature, |     IUniswapFeature, | ||||||
|     ILiquidityProviderFeature |     ILiquidityProviderFeature, | ||||||
|  |     INativeOrdersFeature | ||||||
| { | { | ||||||
|     // solhint-disable state-visibility |     // solhint-disable state-visibility | ||||||
|  |  | ||||||
|     /// @dev Fallback for just receiving ether. |     /// @dev Fallback for just receiving ether. | ||||||
|     receive() external payable; |     receive() external payable; | ||||||
|  |  | ||||||
|     // solhint-enable state-visibility |  | ||||||
|  |  | ||||||
|     /// @dev Get the implementation contract of a registered function. |  | ||||||
|     /// @param selector The function selector. |  | ||||||
|     /// @return impl The implementation contract address. |  | ||||||
|     function getFunctionImplementation(bytes4 selector) |  | ||||||
|         external |  | ||||||
|         view |  | ||||||
|         returns (address impl); |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
|   | |||||||
							
								
								
									
										92
									
								
								contracts/zero-ex/contracts/src/ZeroExOptimized.sol
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								contracts/zero-ex/contracts/src/ZeroExOptimized.sol
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,92 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
|  | /* | ||||||
|  |  | ||||||
|  |   Copyright 2020 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.6.5; | ||||||
|  | pragma experimental ABIEncoderV2; | ||||||
|  |  | ||||||
|  | import "./features/BootstrapFeature.sol"; | ||||||
|  | import "./storage/LibProxyStorage.sol"; | ||||||
|  |  | ||||||
|  | /// @dev An extensible proxy contract that serves as a universal entry point for | ||||||
|  | ///      interacting with the 0x protocol. Optimized version of ZeroEx. | ||||||
|  | contract ZeroExOptimized { | ||||||
|  |     /// @dev Construct this contract and register the `BootstrapFeature` feature. | ||||||
|  |     ///      After constructing this contract, `bootstrap()` should be called | ||||||
|  |     ///      by `bootstrap()` to seed the initial feature set. | ||||||
|  |     /// @param bootstrapper Who can call `bootstrap()`. | ||||||
|  |     constructor(address bootstrapper) public { | ||||||
|  |         // Temporarily create and register the bootstrap feature. | ||||||
|  |         // It will deregister itself after `bootstrap()` has been called. | ||||||
|  |         BootstrapFeature bootstrap = new BootstrapFeature(bootstrapper); | ||||||
|  |         LibProxyStorage.getStorage().impls[bootstrap.bootstrap.selector] = | ||||||
|  |             address(bootstrap); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     // solhint-disable state-visibility | ||||||
|  |  | ||||||
|  |     /// @dev Forwards calls to the appropriate implementation contract. | ||||||
|  |     fallback() external payable { | ||||||
|  |         // This is used in assembly below as impls_slot. | ||||||
|  |         mapping(bytes4 => address) storage impls = | ||||||
|  |             LibProxyStorage.getStorage().impls; | ||||||
|  |  | ||||||
|  |         assembly { | ||||||
|  |             let cdlen := calldatasize() | ||||||
|  |  | ||||||
|  |             // equivalent of receive() external payable {} | ||||||
|  |             if iszero(cdlen) { | ||||||
|  |                 return(0, 0) | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             // Store at 0x40, to leave 0x00-0x3F for slot calculation below. | ||||||
|  |             calldatacopy(0x40, 0, cdlen) | ||||||
|  |             let selector := and(mload(0x40), 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000) | ||||||
|  |  | ||||||
|  |             // Slot for impls[selector] is keccak256(selector . impls_slot). | ||||||
|  |             mstore(0, selector) | ||||||
|  |             mstore(0x20, impls_slot) | ||||||
|  |             let slot := keccak256(0, 0x40) | ||||||
|  |  | ||||||
|  |             let delegate := sload(slot) | ||||||
|  |             if iszero(delegate) { | ||||||
|  |                 // Revert with: | ||||||
|  |                 // abi.encodeWithSelector( | ||||||
|  |                 //   bytes4(keccak256("NotImplementedError(bytes4)")), | ||||||
|  |                 //   selector) | ||||||
|  |                 mstore(0, 0x734e6e1c00000000000000000000000000000000000000000000000000000000) | ||||||
|  |                 mstore(4, selector) | ||||||
|  |                 revert(0, 0x24) | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             let success := delegatecall( | ||||||
|  |                 gas(), | ||||||
|  |                 delegate, | ||||||
|  |                 0x40, cdlen, | ||||||
|  |                 0, 0 | ||||||
|  |             ) | ||||||
|  |             let rdlen := returndatasize() | ||||||
|  |             returndatacopy(0, 0, rdlen) | ||||||
|  |             if success { | ||||||
|  |                 return(0, rdlen) | ||||||
|  |             } | ||||||
|  |             revert(0, rdlen) | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
| @@ -45,19 +46,4 @@ library LibLiquidityProviderRichErrors { | |||||||
|             minBuyAmount |             minBuyAmount | ||||||
|         ); |         ); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     function NoLiquidityProviderForMarketError( |  | ||||||
|         address xAsset, |  | ||||||
|         address yAsset |  | ||||||
|     ) |  | ||||||
|         internal |  | ||||||
|         pure |  | ||||||
|         returns (bytes memory) |  | ||||||
|     { |  | ||||||
|         return abi.encodeWithSelector( |  | ||||||
|             bytes4(keccak256("NoLiquidityProviderForMarketError(address,address)")), |  | ||||||
|             xAsset, |  | ||||||
|             yAsset |  | ||||||
|         ); |  | ||||||
|     } |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
|   | |||||||
| @@ -0,0 +1,173 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
|  | /* | ||||||
|  |  | ||||||
|  |   Copyright 2020 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.6.5; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | library LibNativeOrdersRichErrors { | ||||||
|  |  | ||||||
|  |     // solhint-disable func-name-mixedcase | ||||||
|  |  | ||||||
|  |     function ProtocolFeeRefundFailed( | ||||||
|  |         address receiver, | ||||||
|  |         uint256 refundAmount | ||||||
|  |     ) | ||||||
|  |         internal | ||||||
|  |         pure | ||||||
|  |         returns (bytes memory) | ||||||
|  |     { | ||||||
|  |         return abi.encodeWithSelector( | ||||||
|  |             bytes4(keccak256("ProtocolFeeRefundFailed(address,uint256)")), | ||||||
|  |             receiver, | ||||||
|  |             refundAmount | ||||||
|  |         ); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     function OrderNotFillableByOriginError( | ||||||
|  |         bytes32 orderHash, | ||||||
|  |         address txOrigin, | ||||||
|  |         address orderTxOrigin | ||||||
|  |     ) | ||||||
|  |         internal | ||||||
|  |         pure | ||||||
|  |         returns (bytes memory) | ||||||
|  |     { | ||||||
|  |         return abi.encodeWithSelector( | ||||||
|  |             bytes4(keccak256("OrderNotFillableByOriginError(bytes32,address,address)")), | ||||||
|  |             orderHash, | ||||||
|  |             txOrigin, | ||||||
|  |             orderTxOrigin | ||||||
|  |         ); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     function OrderNotFillableError( | ||||||
|  |         bytes32 orderHash, | ||||||
|  |         uint8 orderStatus | ||||||
|  |     ) | ||||||
|  |         internal | ||||||
|  |         pure | ||||||
|  |         returns (bytes memory) | ||||||
|  |     { | ||||||
|  |         return abi.encodeWithSelector( | ||||||
|  |             bytes4(keccak256("OrderNotFillableError(bytes32,uint8)")), | ||||||
|  |             orderHash, | ||||||
|  |             orderStatus | ||||||
|  |         ); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     function OrderNotSignedByMakerError( | ||||||
|  |         bytes32 orderHash, | ||||||
|  |         address signer, | ||||||
|  |         address maker | ||||||
|  |     ) | ||||||
|  |         internal | ||||||
|  |         pure | ||||||
|  |         returns (bytes memory) | ||||||
|  |     { | ||||||
|  |         return abi.encodeWithSelector( | ||||||
|  |             bytes4(keccak256("OrderNotSignedByMakerError(bytes32,address,address)")), | ||||||
|  |             orderHash, | ||||||
|  |             signer, | ||||||
|  |             maker | ||||||
|  |         ); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     function OrderNotFillableBySenderError( | ||||||
|  |         bytes32 orderHash, | ||||||
|  |         address sender, | ||||||
|  |         address orderSender | ||||||
|  |     ) | ||||||
|  |         internal | ||||||
|  |         pure | ||||||
|  |         returns (bytes memory) | ||||||
|  |     { | ||||||
|  |         return abi.encodeWithSelector( | ||||||
|  |             bytes4(keccak256("OrderNotFillableBySenderError(bytes32,address,address)")), | ||||||
|  |             orderHash, | ||||||
|  |             sender, | ||||||
|  |             orderSender | ||||||
|  |         ); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     function OrderNotFillableByTakerError( | ||||||
|  |         bytes32 orderHash, | ||||||
|  |         address taker, | ||||||
|  |         address orderTaker | ||||||
|  |     ) | ||||||
|  |         internal | ||||||
|  |         pure | ||||||
|  |         returns (bytes memory) | ||||||
|  |     { | ||||||
|  |         return abi.encodeWithSelector( | ||||||
|  |             bytes4(keccak256("OrderNotFillableByTakerError(bytes32,address,address)")), | ||||||
|  |             orderHash, | ||||||
|  |             taker, | ||||||
|  |             orderTaker | ||||||
|  |         ); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     function CancelSaltTooLowError( | ||||||
|  |         uint256 minValidSalt, | ||||||
|  |         uint256 oldMinValidSalt | ||||||
|  |     ) | ||||||
|  |         internal | ||||||
|  |         pure | ||||||
|  |         returns (bytes memory) | ||||||
|  |     { | ||||||
|  |         return abi.encodeWithSelector( | ||||||
|  |             bytes4(keccak256("CancelSaltTooLowError(uint256,uint256)")), | ||||||
|  |             minValidSalt, | ||||||
|  |             oldMinValidSalt | ||||||
|  |         ); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     function FillOrKillFailedError( | ||||||
|  |         bytes32 orderHash, | ||||||
|  |         uint256 takerTokenFilledAmount, | ||||||
|  |         uint256 takerTokenFillAmount | ||||||
|  |     ) | ||||||
|  |         internal | ||||||
|  |         pure | ||||||
|  |         returns (bytes memory) | ||||||
|  |     { | ||||||
|  |         return abi.encodeWithSelector( | ||||||
|  |             bytes4(keccak256("FillOrKillFailedError(bytes32,uint256,uint256)")), | ||||||
|  |             orderHash, | ||||||
|  |             takerTokenFilledAmount, | ||||||
|  |             takerTokenFillAmount | ||||||
|  |         ); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     function OnlyOrderMakerAllowed( | ||||||
|  |         bytes32 orderHash, | ||||||
|  |         address sender, | ||||||
|  |         address maker | ||||||
|  |     ) | ||||||
|  |         internal | ||||||
|  |         pure | ||||||
|  |         returns (bytes memory) | ||||||
|  |     { | ||||||
|  |         return abi.encodeWithSelector( | ||||||
|  |             bytes4(keccak256("OnlyOrderMakerAllowed(bytes32,address,address)")), | ||||||
|  |             orderHash, | ||||||
|  |             sender, | ||||||
|  |             maker | ||||||
|  |         ); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | // SPDX-License-Identifier: Apache-2.0 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|   Copyright 2020 ZeroEx Intl. |   Copyright 2020 ZeroEx Intl. | ||||||
|   | |||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user