Compare commits
107 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 |
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],
|
||||
"max-line-length": ["warn", 160],
|
||||
"no-inline-assembly": false,
|
||||
"no-empty-blocks": false,
|
||||
"quotes": ["error", "double"],
|
||||
"separate-by-one-line-in-contract": "error",
|
||||
"space-after-comma": "error",
|
||||
"statement-indent": "error"
|
||||
"statement-indent": "error",
|
||||
"no-empty-blocks": false
|
||||
}
|
||||
}
|
||||
|
@@ -1,4 +1,95 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
|
@@ -5,6 +5,46 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
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
|
||||
|
@@ -21,6 +21,7 @@ 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/DeploymentConstants.sol";
|
||||
@@ -36,6 +37,20 @@ contract BancorBridge is
|
||||
struct TransferState {
|
||||
address bancorNetworkAddress;
|
||||
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
|
||||
@@ -60,7 +75,6 @@ contract BancorBridge is
|
||||
{
|
||||
// hold variables to get around stack depth limitations
|
||||
TransferState memory state;
|
||||
|
||||
// Decode the bridge data.
|
||||
(
|
||||
state.path,
|
||||
@@ -68,34 +82,42 @@ contract BancorBridge is
|
||||
// solhint-disable indent
|
||||
) = abi.decode(bridgeData, (address[], address));
|
||||
// solhint-enable indent
|
||||
state.weth = IEtherToken(_getWethAddress());
|
||||
|
||||
require(state.path.length > 0, "BancorBridge/PATH_MUST_EXIST");
|
||||
// Just transfer the tokens if they're the same.
|
||||
if (state.path[0] == toTokenAddress) {
|
||||
LibERC20Token.transfer(state.path[0], to, amount);
|
||||
return BRIDGE_SUCCESS;
|
||||
require(state.path.length >= 2, "BancorBridge/PATH_LENGTH_MUST_BE_GREATER_THAN_TWO");
|
||||
|
||||
// Grant an allowance to the Bancor Network to spend `fromTokenAddress` token.
|
||||
uint256 fromTokenBalance;
|
||||
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
|
||||
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
|
||||
fromTokenBalance, // amount of source token to trade
|
||||
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
|
||||
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(
|
||||
state.path[0], // fromTokenAddress
|
||||
state.path[0] == BANCOR_ETH_ADDRESS ? address(state.weth) : state.path[0],
|
||||
toTokenAddress,
|
||||
fromTokenBalance,
|
||||
boughtAmount,
|
||||
@@ -118,5 +140,5 @@ contract BancorBridge is
|
||||
{
|
||||
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;
|
||||
|
||||
// solhint-disable no-empty-blocks
|
||||
/// @dev Payable fallback to receive ETH from Kyber.
|
||||
/// @dev Payable fallback to receive ETH from Kyber/WETH.
|
||||
function ()
|
||||
external
|
||||
payable
|
||||
{}
|
||||
{
|
||||
// Poor man's receive in 0.5.9
|
||||
require(msg.data.length == 0);
|
||||
}
|
||||
|
||||
/// @dev Callback for `IKyberBridge`. Tries to buy `amount` of
|
||||
/// `toTokenAddress` tokens by selling the entirety of the opposing asset
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-asset-proxy",
|
||||
"version": "3.6.5",
|
||||
"version": "3.7.5",
|
||||
"engines": {
|
||||
"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"
|
||||
},
|
||||
"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."
|
||||
},
|
||||
"repository": {
|
||||
@@ -51,13 +51,13 @@
|
||||
},
|
||||
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/protocol",
|
||||
"devDependencies": {
|
||||
"@0x/abi-gen": "^5.4.7",
|
||||
"@0x/contract-wrappers": "^13.10.0",
|
||||
"@0x/contracts-gen": "2.0.18",
|
||||
"@0x/contracts-test-utils": "^5.3.11",
|
||||
"@0x/contracts-utils": "^4.5.8",
|
||||
"@0x/dev-utils": "^4.0.1",
|
||||
"@0x/sol-compiler": "^4.2.7",
|
||||
"@0x/abi-gen": "^5.4.19",
|
||||
"@0x/contract-wrappers": "^13.12.2",
|
||||
"@0x/contracts-gen": "^2.0.30",
|
||||
"@0x/contracts-test-utils": "^5.3.20",
|
||||
"@0x/contracts-utils": "^4.7.2",
|
||||
"@0x/dev-utils": "^4.2.1",
|
||||
"@0x/sol-compiler": "^4.5.2",
|
||||
"@0x/ts-doc-gen": "^0.0.28",
|
||||
"@0x/tslint-config": "^4.1.3",
|
||||
"@types/lodash": "4.14.104",
|
||||
@@ -79,17 +79,17 @@
|
||||
"typescript": "3.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@0x/base-contract": "^6.2.11",
|
||||
"@0x/contracts-erc1155": "^2.1.14",
|
||||
"@0x/contracts-erc20": "^3.2.8",
|
||||
"@0x/contracts-erc721": "^3.1.14",
|
||||
"@0x/contracts-exchange-libs": "^4.3.14",
|
||||
"@0x/order-utils": "^10.4.6",
|
||||
"@0x/types": "^3.3.0",
|
||||
"@0x/typescript-typings": "^5.1.5",
|
||||
"@0x/utils": "^6.1.0",
|
||||
"@0x/web3-wrapper": "^7.2.8",
|
||||
"ethereum-types": "^3.3.3",
|
||||
"@0x/base-contract": "^6.2.18",
|
||||
"@0x/contracts-erc1155": "^2.1.23",
|
||||
"@0x/contracts-erc20": "^3.3.2",
|
||||
"@0x/contracts-erc721": "^3.1.23",
|
||||
"@0x/contracts-exchange-libs": "^4.3.23",
|
||||
"@0x/order-utils": "^10.4.15",
|
||||
"@0x/types": "^3.3.1",
|
||||
"@0x/typescript-typings": "^5.1.6",
|
||||
"@0x/utils": "^6.2.0",
|
||||
"@0x/web3-wrapper": "^7.4.1",
|
||||
"ethereum-types": "^3.4.0",
|
||||
"lodash": "^4.17.11"
|
||||
},
|
||||
"publishConfig": {
|
||||
|
@@ -9,6 +9,7 @@ import * as BalancerBridge from '../generated-artifacts/BalancerBridge.json';
|
||||
import * as BancorBridge from '../generated-artifacts/BancorBridge.json';
|
||||
import * as ChaiBridge from '../generated-artifacts/ChaiBridge.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 DexForwarderBridge from '../generated-artifacts/DexForwarderBridge.json';
|
||||
import * as DODOBridge from '../generated-artifacts/DODOBridge.json';
|
||||
@@ -77,6 +78,7 @@ export const artifacts = {
|
||||
BancorBridge: BancorBridge as ContractArtifact,
|
||||
ChaiBridge: ChaiBridge as ContractArtifact,
|
||||
CreamBridge: CreamBridge as ContractArtifact,
|
||||
CryptoComBridge: CryptoComBridge as ContractArtifact,
|
||||
CurveBridge: CurveBridge as ContractArtifact,
|
||||
DODOBridge: DODOBridge 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/chai_bridge';
|
||||
export * from '../generated-wrappers/cream_bridge';
|
||||
export * from '../generated-wrappers/crypto_com_bridge';
|
||||
export * from '../generated-wrappers/curve_bridge';
|
||||
export * from '../generated-wrappers/d_o_d_o_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 ChaiBridge from '../test/generated-artifacts/ChaiBridge.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 DexForwarderBridge from '../test/generated-artifacts/DexForwarderBridge.json';
|
||||
import * as DODOBridge from '../test/generated-artifacts/DODOBridge.json';
|
||||
@@ -77,6 +78,7 @@ export const artifacts = {
|
||||
BancorBridge: BancorBridge as ContractArtifact,
|
||||
ChaiBridge: ChaiBridge as ContractArtifact,
|
||||
CreamBridge: CreamBridge as ContractArtifact,
|
||||
CryptoComBridge: CryptoComBridge as ContractArtifact,
|
||||
CurveBridge: CurveBridge as ContractArtifact,
|
||||
DODOBridge: DODOBridge as ContractArtifact,
|
||||
DexForwarderBridge: DexForwarderBridge as ContractArtifact,
|
||||
|
@@ -12,13 +12,11 @@ import { DecodedLogs } from 'ethereum-types';
|
||||
import * as _ from 'lodash';
|
||||
|
||||
import { artifacts } from './artifacts';
|
||||
|
||||
import { TestBancorBridgeContract } from './generated-wrappers/test_bancor_bridge';
|
||||
import {
|
||||
TestBancorBridgeConvertByPathInputEventArgs as ConvertByPathArgs,
|
||||
TestBancorBridgeEvents as ContractEvents,
|
||||
TestBancorBridgeTokenApproveEventArgs as TokenApproveArgs,
|
||||
TestBancorBridgeTokenTransferEventArgs as TokenTransferArgs,
|
||||
} from './wrappers';
|
||||
|
||||
blockchainTests.resets('Bancor unit tests', env => {
|
||||
@@ -128,24 +126,6 @@ blockchainTests.resets('Bancor unit tests', env => {
|
||||
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 () => {
|
||||
it('calls BancorNetwork.convertByPath()', async () => {
|
||||
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/chai_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/d_o_d_o_bridge';
|
||||
export * from '../test/generated-wrappers/dex_forwarder_bridge';
|
||||
|
@@ -7,6 +7,7 @@
|
||||
"generated-artifacts/BancorBridge.json",
|
||||
"generated-artifacts/ChaiBridge.json",
|
||||
"generated-artifacts/CreamBridge.json",
|
||||
"generated-artifacts/CryptoComBridge.json",
|
||||
"generated-artifacts/CurveBridge.json",
|
||||
"generated-artifacts/DODOBridge.json",
|
||||
"generated-artifacts/DexForwarderBridge.json",
|
||||
@@ -65,6 +66,7 @@
|
||||
"test/generated-artifacts/BancorBridge.json",
|
||||
"test/generated-artifacts/ChaiBridge.json",
|
||||
"test/generated-artifacts/CreamBridge.json",
|
||||
"test/generated-artifacts/CryptoComBridge.json",
|
||||
"test/generated-artifacts/CurveBridge.json",
|
||||
"test/generated-artifacts/DODOBridge.json",
|
||||
"test/generated-artifacts/DexForwarderBridge.json",
|
||||
|
@@ -1,4 +1,94 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
|
@@ -5,6 +5,46 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
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
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-broker",
|
||||
"version": "1.1.13",
|
||||
"version": "1.1.23",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@@ -51,20 +51,20 @@
|
||||
},
|
||||
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions",
|
||||
"devDependencies": {
|
||||
"@0x/abi-gen": "^5.4.7",
|
||||
"@0x/contracts-asset-proxy": "^3.6.5",
|
||||
"@0x/contracts-erc20": "^3.2.8",
|
||||
"@0x/contracts-erc721": "^3.1.14",
|
||||
"@0x/contracts-exchange": "^3.2.14",
|
||||
"@0x/contracts-exchange-libs": "^4.3.14",
|
||||
"@0x/contracts-gen": "2.0.18",
|
||||
"@0x/contracts-test-utils": "^5.3.11",
|
||||
"@0x/contracts-utils": "^4.5.8",
|
||||
"@0x/sol-compiler": "^4.2.7",
|
||||
"@0x/abi-gen": "^5.4.19",
|
||||
"@0x/contracts-asset-proxy": "^3.7.5",
|
||||
"@0x/contracts-erc20": "^3.3.2",
|
||||
"@0x/contracts-erc721": "^3.1.23",
|
||||
"@0x/contracts-exchange": "^3.2.24",
|
||||
"@0x/contracts-exchange-libs": "^4.3.23",
|
||||
"@0x/contracts-gen": "^2.0.30",
|
||||
"@0x/contracts-test-utils": "^5.3.20",
|
||||
"@0x/contracts-utils": "^4.7.2",
|
||||
"@0x/sol-compiler": "^4.5.2",
|
||||
"@0x/ts-doc-gen": "^0.0.28",
|
||||
"@0x/tslint-config": "^4.1.3",
|
||||
"@0x/types": "^3.3.0",
|
||||
"@0x/web3-wrapper": "^7.2.8",
|
||||
"@0x/types": "^3.3.1",
|
||||
"@0x/web3-wrapper": "^7.4.1",
|
||||
"@types/lodash": "4.14.104",
|
||||
"@types/mocha": "^5.2.7",
|
||||
"@types/node": "12.12.54",
|
||||
@@ -84,11 +84,11 @@
|
||||
"typescript": "3.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@0x/base-contract": "^6.2.11",
|
||||
"@0x/order-utils": "^10.4.6",
|
||||
"@0x/typescript-typings": "^5.1.5",
|
||||
"@0x/utils": "^6.1.0",
|
||||
"ethereum-types": "^3.3.3"
|
||||
"@0x/base-contract": "^6.2.18",
|
||||
"@0x/order-utils": "^10.4.15",
|
||||
"@0x/typescript-typings": "^5.1.6",
|
||||
"@0x/utils": "^6.2.0",
|
||||
"ethereum-types": "^3.4.0"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
|
@@ -1,4 +1,94 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
|
@@ -5,6 +5,46 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
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
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-coordinator",
|
||||
"version": "3.1.14",
|
||||
"version": "3.1.24",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@@ -52,17 +52,17 @@
|
||||
},
|
||||
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions",
|
||||
"devDependencies": {
|
||||
"@0x/abi-gen": "^5.4.7",
|
||||
"@0x/contracts-asset-proxy": "^3.6.5",
|
||||
"@0x/contracts-dev-utils": "^1.3.12",
|
||||
"@0x/contracts-erc20": "^3.2.8",
|
||||
"@0x/contracts-gen": "2.0.18",
|
||||
"@0x/dev-utils": "^4.0.1",
|
||||
"@0x/order-utils": "^10.4.6",
|
||||
"@0x/sol-compiler": "^4.2.7",
|
||||
"@0x/abi-gen": "^5.4.19",
|
||||
"@0x/contracts-asset-proxy": "^3.7.5",
|
||||
"@0x/contracts-dev-utils": "^1.3.22",
|
||||
"@0x/contracts-erc20": "^3.3.2",
|
||||
"@0x/contracts-gen": "^2.0.30",
|
||||
"@0x/dev-utils": "^4.2.1",
|
||||
"@0x/order-utils": "^10.4.15",
|
||||
"@0x/sol-compiler": "^4.5.2",
|
||||
"@0x/ts-doc-gen": "^0.0.28",
|
||||
"@0x/tslint-config": "^4.1.3",
|
||||
"@0x/web3-wrapper": "^7.2.8",
|
||||
"@0x/web3-wrapper": "^7.4.1",
|
||||
"@types/lodash": "4.14.104",
|
||||
"@types/mocha": "^5.2.7",
|
||||
"@types/node": "12.12.54",
|
||||
@@ -82,17 +82,17 @@
|
||||
"typescript": "3.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@0x/assert": "^3.0.17",
|
||||
"@0x/base-contract": "^6.2.11",
|
||||
"@0x/contract-addresses": "^5.3.0",
|
||||
"@0x/contracts-exchange": "^3.2.14",
|
||||
"@0x/contracts-test-utils": "^5.3.11",
|
||||
"@0x/contracts-utils": "^4.5.8",
|
||||
"@0x/json-schemas": "^5.3.3",
|
||||
"@0x/types": "^3.3.0",
|
||||
"@0x/typescript-typings": "^5.1.5",
|
||||
"@0x/utils": "^6.1.0",
|
||||
"ethereum-types": "^3.3.3",
|
||||
"@0x/assert": "^3.0.21",
|
||||
"@0x/base-contract": "^6.2.18",
|
||||
"@0x/contract-addresses": "^5.9.0",
|
||||
"@0x/contracts-exchange": "^3.2.24",
|
||||
"@0x/contracts-test-utils": "^5.3.20",
|
||||
"@0x/contracts-utils": "^4.7.2",
|
||||
"@0x/json-schemas": "^5.4.1",
|
||||
"@0x/types": "^3.3.1",
|
||||
"@0x/typescript-typings": "^5.1.6",
|
||||
"@0x/utils": "^6.2.0",
|
||||
"ethereum-types": "^3.4.0",
|
||||
"http-status-codes": "^1.3.2"
|
||||
},
|
||||
"publishConfig": {
|
||||
|
@@ -1,4 +1,94 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
|
@@ -5,6 +5,46 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
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
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-dev-utils",
|
||||
"version": "1.3.12",
|
||||
"version": "1.3.22",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@@ -41,18 +41,18 @@
|
||||
},
|
||||
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/dev-utils",
|
||||
"devDependencies": {
|
||||
"@0x/abi-gen": "^5.4.7",
|
||||
"@0x/assert": "^3.0.17",
|
||||
"@0x/contracts-asset-proxy": "^3.6.5",
|
||||
"@0x/contracts-erc20": "^3.2.8",
|
||||
"@0x/contracts-gen": "2.0.18",
|
||||
"@0x/contracts-test-utils": "^5.3.11",
|
||||
"@0x/sol-compiler": "^4.2.7",
|
||||
"@0x/abi-gen": "^5.4.19",
|
||||
"@0x/assert": "^3.0.21",
|
||||
"@0x/contracts-asset-proxy": "^3.7.5",
|
||||
"@0x/contracts-erc20": "^3.3.2",
|
||||
"@0x/contracts-gen": "^2.0.30",
|
||||
"@0x/contracts-test-utils": "^5.3.20",
|
||||
"@0x/sol-compiler": "^4.5.2",
|
||||
"@0x/ts-doc-gen": "^0.0.28",
|
||||
"@0x/tslint-config": "^4.1.3",
|
||||
"@0x/types": "^3.3.0",
|
||||
"@0x/utils": "^6.1.0",
|
||||
"ethereum-types": "^3.3.3",
|
||||
"@0x/types": "^3.3.1",
|
||||
"@0x/utils": "^6.2.0",
|
||||
"ethereum-types": "^3.4.0",
|
||||
"ethers": "~4.0.4",
|
||||
"npm-run-all": "^4.1.2",
|
||||
"shx": "^0.2.2",
|
||||
@@ -63,7 +63,7 @@
|
||||
"typescript": "3.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@0x/base-contract": "^6.2.11",
|
||||
"@0x/base-contract": "^6.2.18",
|
||||
"@types/node": "12.12.54"
|
||||
},
|
||||
"publishConfig": {
|
||||
|
@@ -1,4 +1,85 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
|
@@ -5,6 +5,42 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
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
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-erc1155",
|
||||
"version": "2.1.14",
|
||||
"version": "2.1.23",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@@ -52,15 +52,15 @@
|
||||
},
|
||||
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/tokens",
|
||||
"devDependencies": {
|
||||
"@0x/abi-gen": "^5.4.7",
|
||||
"@0x/contracts-gen": "2.0.18",
|
||||
"@0x/contracts-utils": "^4.5.8",
|
||||
"@0x/dev-utils": "^4.0.1",
|
||||
"@0x/sol-compiler": "^4.2.7",
|
||||
"@0x/abi-gen": "^5.4.19",
|
||||
"@0x/contracts-gen": "^2.0.30",
|
||||
"@0x/contracts-utils": "^4.7.2",
|
||||
"@0x/dev-utils": "^4.2.1",
|
||||
"@0x/sol-compiler": "^4.5.2",
|
||||
"@0x/ts-doc-gen": "^0.0.28",
|
||||
"@0x/tslint-config": "^4.1.3",
|
||||
"@0x/types": "^3.3.0",
|
||||
"@0x/typescript-typings": "^5.1.5",
|
||||
"@0x/types": "^3.3.1",
|
||||
"@0x/typescript-typings": "^5.1.6",
|
||||
"@types/lodash": "4.14.104",
|
||||
"@types/mocha": "^5.2.7",
|
||||
"@types/node": "12.12.54",
|
||||
@@ -68,7 +68,7 @@
|
||||
"chai-as-promised": "^7.1.0",
|
||||
"chai-bignumber": "^3.0.0",
|
||||
"dirty-chai": "^2.0.1",
|
||||
"ethereum-types": "^3.3.3",
|
||||
"ethereum-types": "^3.4.0",
|
||||
"make-promises-safe": "^1.1.0",
|
||||
"mocha": "^6.2.0",
|
||||
"npm-run-all": "^4.1.2",
|
||||
@@ -80,10 +80,10 @@
|
||||
"typescript": "3.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@0x/base-contract": "^6.2.11",
|
||||
"@0x/contracts-test-utils": "^5.3.11",
|
||||
"@0x/utils": "^6.1.0",
|
||||
"@0x/web3-wrapper": "^7.2.8",
|
||||
"@0x/base-contract": "^6.2.18",
|
||||
"@0x/contracts-test-utils": "^5.3.20",
|
||||
"@0x/utils": "^6.2.0",
|
||||
"@0x/web3-wrapper": "^7.4.1",
|
||||
"lodash": "^4.17.11"
|
||||
},
|
||||
"publishConfig": {
|
||||
|
@@ -1,4 +1,90 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
|
@@ -5,6 +5,43 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
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
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
|
||||
Copyright 2020 ZeroEx Intl.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
|
||||
Copyright 2020 ZeroEx Intl.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
|
||||
Copyright 2020 ZeroEx Intl.
|
||||
@@ -118,7 +119,7 @@ library LibERC20TokenV06 {
|
||||
{
|
||||
tokenDecimals = 18;
|
||||
(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));
|
||||
}
|
||||
}
|
||||
@@ -141,7 +142,7 @@ library LibERC20TokenV06 {
|
||||
spender
|
||||
)
|
||||
);
|
||||
if (didSucceed && resultData.length == 32) {
|
||||
if (didSucceed && resultData.length >= 32) {
|
||||
allowance_ = LibBytesV06.readUint256(resultData, 0);
|
||||
}
|
||||
}
|
||||
@@ -162,7 +163,7 @@ library LibERC20TokenV06 {
|
||||
owner
|
||||
)
|
||||
);
|
||||
if (didSucceed && resultData.length == 32) {
|
||||
if (didSucceed && resultData.length >= 32) {
|
||||
balance = LibBytesV06.readUint256(resultData, 0);
|
||||
}
|
||||
}
|
||||
@@ -180,7 +181,7 @@ library LibERC20TokenV06 {
|
||||
if (resultData.length == 0) {
|
||||
return true;
|
||||
}
|
||||
if (resultData.length == 32) {
|
||||
if (resultData.length >= 32) {
|
||||
uint256 result = LibBytesV06.readUint256(resultData, 0);
|
||||
if (result == 1) {
|
||||
return true;
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-erc20",
|
||||
"version": "3.2.8",
|
||||
"version": "3.3.2",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@@ -51,18 +51,18 @@
|
||||
},
|
||||
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/tokens",
|
||||
"devDependencies": {
|
||||
"@0x/abi-gen": "^5.4.7",
|
||||
"@0x/contracts-gen": "2.0.18",
|
||||
"@0x/contracts-test-utils": "^5.3.11",
|
||||
"@0x/contracts-utils": "^4.5.8",
|
||||
"@0x/dev-utils": "^4.0.1",
|
||||
"@0x/sol-compiler": "^4.2.7",
|
||||
"@0x/abi-gen": "^5.4.19",
|
||||
"@0x/contracts-gen": "^2.0.30",
|
||||
"@0x/contracts-test-utils": "^5.3.20",
|
||||
"@0x/contracts-utils": "^4.7.2",
|
||||
"@0x/dev-utils": "^4.2.1",
|
||||
"@0x/sol-compiler": "^4.5.2",
|
||||
"@0x/ts-doc-gen": "^0.0.28",
|
||||
"@0x/tslint-config": "^4.1.3",
|
||||
"@0x/types": "^3.3.0",
|
||||
"@0x/typescript-typings": "^5.1.5",
|
||||
"@0x/utils": "^6.1.0",
|
||||
"@0x/web3-wrapper": "^7.2.8",
|
||||
"@0x/types": "^3.3.1",
|
||||
"@0x/typescript-typings": "^5.1.6",
|
||||
"@0x/utils": "^6.2.0",
|
||||
"@0x/web3-wrapper": "^7.4.1",
|
||||
"@types/lodash": "4.14.104",
|
||||
"@types/mocha": "^5.2.7",
|
||||
"@types/node": "12.12.54",
|
||||
@@ -70,7 +70,7 @@
|
||||
"chai-as-promised": "^7.1.0",
|
||||
"chai-bignumber": "^3.0.0",
|
||||
"dirty-chai": "^2.0.1",
|
||||
"ethereum-types": "^3.3.3",
|
||||
"ethereum-types": "^3.4.0",
|
||||
"lodash": "^4.17.11",
|
||||
"make-promises-safe": "^1.1.0",
|
||||
"mocha": "^6.2.0",
|
||||
@@ -82,7 +82,7 @@
|
||||
"typescript": "3.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@0x/base-contract": "^6.2.11"
|
||||
"@0x/base-contract": "^6.2.18"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
|
@@ -1,4 +1,85 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
|
@@ -5,6 +5,42 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
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
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-erc721",
|
||||
"version": "3.1.14",
|
||||
"version": "3.1.23",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@@ -52,18 +52,18 @@
|
||||
},
|
||||
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/tokens",
|
||||
"devDependencies": {
|
||||
"@0x/abi-gen": "^5.4.7",
|
||||
"@0x/contracts-gen": "2.0.18",
|
||||
"@0x/contracts-test-utils": "^5.3.11",
|
||||
"@0x/contracts-utils": "^4.5.8",
|
||||
"@0x/dev-utils": "^4.0.1",
|
||||
"@0x/sol-compiler": "^4.2.7",
|
||||
"@0x/abi-gen": "^5.4.19",
|
||||
"@0x/contracts-gen": "^2.0.30",
|
||||
"@0x/contracts-test-utils": "^5.3.20",
|
||||
"@0x/contracts-utils": "^4.7.2",
|
||||
"@0x/dev-utils": "^4.2.1",
|
||||
"@0x/sol-compiler": "^4.5.2",
|
||||
"@0x/ts-doc-gen": "^0.0.28",
|
||||
"@0x/tslint-config": "^4.1.3",
|
||||
"@0x/types": "^3.3.0",
|
||||
"@0x/typescript-typings": "^5.1.5",
|
||||
"@0x/utils": "^6.1.0",
|
||||
"@0x/web3-wrapper": "^7.2.8",
|
||||
"@0x/types": "^3.3.1",
|
||||
"@0x/typescript-typings": "^5.1.6",
|
||||
"@0x/utils": "^6.2.0",
|
||||
"@0x/web3-wrapper": "^7.4.1",
|
||||
"@types/lodash": "4.14.104",
|
||||
"@types/mocha": "^5.2.7",
|
||||
"@types/node": "12.12.54",
|
||||
@@ -71,7 +71,7 @@
|
||||
"chai-as-promised": "^7.1.0",
|
||||
"chai-bignumber": "^3.0.0",
|
||||
"dirty-chai": "^2.0.1",
|
||||
"ethereum-types": "^3.3.3",
|
||||
"ethereum-types": "^3.4.0",
|
||||
"lodash": "^4.17.11",
|
||||
"make-promises-safe": "^1.1.0",
|
||||
"mocha": "^6.2.0",
|
||||
@@ -84,7 +84,7 @@
|
||||
"typescript": "3.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@0x/base-contract": "^6.2.11"
|
||||
"@0x/base-contract": "^6.2.18"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
|
@@ -1,4 +1,94 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
|
@@ -5,6 +5,46 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
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
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-exchange-forwarder",
|
||||
"version": "4.2.14",
|
||||
"version": "4.2.24",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@@ -52,25 +52,25 @@
|
||||
},
|
||||
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions",
|
||||
"devDependencies": {
|
||||
"@0x/abi-gen": "^5.4.7",
|
||||
"@0x/contracts-asset-proxy": "^3.6.5",
|
||||
"@0x/contracts-dev-utils": "^1.3.12",
|
||||
"@0x/contracts-erc1155": "^2.1.14",
|
||||
"@0x/contracts-erc20": "^3.2.8",
|
||||
"@0x/contracts-erc721": "^3.1.14",
|
||||
"@0x/contracts-exchange": "^3.2.14",
|
||||
"@0x/contracts-exchange-libs": "^4.3.14",
|
||||
"@0x/contracts-gen": "2.0.18",
|
||||
"@0x/contracts-test-utils": "^5.3.11",
|
||||
"@0x/contracts-utils": "^4.5.8",
|
||||
"@0x/dev-utils": "^4.0.1",
|
||||
"@0x/order-utils": "^10.4.6",
|
||||
"@0x/sol-compiler": "^4.2.7",
|
||||
"@0x/abi-gen": "^5.4.19",
|
||||
"@0x/contracts-asset-proxy": "^3.7.5",
|
||||
"@0x/contracts-dev-utils": "^1.3.22",
|
||||
"@0x/contracts-erc1155": "^2.1.23",
|
||||
"@0x/contracts-erc20": "^3.3.2",
|
||||
"@0x/contracts-erc721": "^3.1.23",
|
||||
"@0x/contracts-exchange": "^3.2.24",
|
||||
"@0x/contracts-exchange-libs": "^4.3.23",
|
||||
"@0x/contracts-gen": "^2.0.30",
|
||||
"@0x/contracts-test-utils": "^5.3.20",
|
||||
"@0x/contracts-utils": "^4.7.2",
|
||||
"@0x/dev-utils": "^4.2.1",
|
||||
"@0x/order-utils": "^10.4.15",
|
||||
"@0x/sol-compiler": "^4.5.2",
|
||||
"@0x/ts-doc-gen": "^0.0.28",
|
||||
"@0x/tslint-config": "^4.1.3",
|
||||
"@0x/types": "^3.3.0",
|
||||
"@0x/utils": "^6.1.0",
|
||||
"@0x/web3-wrapper": "^7.2.8",
|
||||
"@0x/types": "^3.3.1",
|
||||
"@0x/utils": "^6.2.0",
|
||||
"@0x/web3-wrapper": "^7.4.1",
|
||||
"@types/lodash": "4.14.104",
|
||||
"@types/mocha": "^5.2.7",
|
||||
"@types/node": "12.12.54",
|
||||
@@ -90,9 +90,9 @@
|
||||
"typescript": "3.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@0x/base-contract": "^6.2.11",
|
||||
"@0x/typescript-typings": "^5.1.5",
|
||||
"ethereum-types": "^3.3.3"
|
||||
"@0x/base-contract": "^6.2.18",
|
||||
"@0x/typescript-typings": "^5.1.6",
|
||||
"ethereum-types": "^3.4.0"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
|
@@ -1,4 +1,85 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
|
@@ -5,6 +5,42 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
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
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-exchange-libs",
|
||||
"version": "4.3.14",
|
||||
"version": "4.3.23",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@@ -52,14 +52,14 @@
|
||||
},
|
||||
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/libs",
|
||||
"devDependencies": {
|
||||
"@0x/abi-gen": "^5.4.7",
|
||||
"@0x/contracts-gen": "2.0.18",
|
||||
"@0x/dev-utils": "^4.0.1",
|
||||
"@0x/sol-compiler": "^4.2.7",
|
||||
"@0x/subproviders": "^6.1.9",
|
||||
"@0x/abi-gen": "^5.4.19",
|
||||
"@0x/contracts-gen": "^2.0.30",
|
||||
"@0x/dev-utils": "^4.2.1",
|
||||
"@0x/sol-compiler": "^4.5.2",
|
||||
"@0x/subproviders": "^6.4.1",
|
||||
"@0x/ts-doc-gen": "^0.0.28",
|
||||
"@0x/tslint-config": "^4.1.3",
|
||||
"@0x/web3-wrapper": "^7.2.8",
|
||||
"@0x/web3-wrapper": "^7.4.1",
|
||||
"@types/lodash": "4.14.104",
|
||||
"@types/mocha": "^5.2.7",
|
||||
"@types/node": "12.12.54",
|
||||
@@ -80,14 +80,14 @@
|
||||
"typescript": "3.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@0x/base-contract": "^6.2.11",
|
||||
"@0x/contracts-test-utils": "^5.3.11",
|
||||
"@0x/contracts-utils": "^4.5.8",
|
||||
"@0x/order-utils": "^10.4.6",
|
||||
"@0x/types": "^3.3.0",
|
||||
"@0x/typescript-typings": "^5.1.5",
|
||||
"@0x/utils": "^6.1.0",
|
||||
"ethereum-types": "^3.3.3"
|
||||
"@0x/base-contract": "^6.2.18",
|
||||
"@0x/contracts-test-utils": "^5.3.20",
|
||||
"@0x/contracts-utils": "^4.7.2",
|
||||
"@0x/order-utils": "^10.4.15",
|
||||
"@0x/types": "^3.3.1",
|
||||
"@0x/typescript-typings": "^5.1.6",
|
||||
"@0x/utils": "^6.2.0",
|
||||
"ethereum-types": "^3.4.0"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
|
@@ -1,4 +1,94 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
|
@@ -5,6 +5,46 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
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
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-exchange",
|
||||
"version": "3.2.14",
|
||||
"version": "3.2.24",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@@ -52,21 +52,21 @@
|
||||
},
|
||||
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/protocol",
|
||||
"devDependencies": {
|
||||
"@0x/abi-gen": "^5.4.7",
|
||||
"@0x/contracts-asset-proxy": "^3.6.5",
|
||||
"@0x/contracts-exchange-libs": "^4.3.14",
|
||||
"@0x/contracts-gen": "2.0.18",
|
||||
"@0x/contracts-multisig": "^4.1.14",
|
||||
"@0x/contracts-staking": "^2.0.21",
|
||||
"@0x/contracts-test-utils": "^5.3.11",
|
||||
"@0x/contracts-utils": "^4.5.8",
|
||||
"@0x/dev-utils": "^4.0.1",
|
||||
"@0x/sol-compiler": "^4.2.7",
|
||||
"@0x/abi-gen": "^5.4.19",
|
||||
"@0x/contracts-asset-proxy": "^3.7.5",
|
||||
"@0x/contracts-exchange-libs": "^4.3.23",
|
||||
"@0x/contracts-gen": "^2.0.30",
|
||||
"@0x/contracts-multisig": "^4.1.24",
|
||||
"@0x/contracts-staking": "^2.0.31",
|
||||
"@0x/contracts-test-utils": "^5.3.20",
|
||||
"@0x/contracts-utils": "^4.7.2",
|
||||
"@0x/dev-utils": "^4.2.1",
|
||||
"@0x/sol-compiler": "^4.5.2",
|
||||
"@0x/ts-doc-gen": "^0.0.28",
|
||||
"@0x/tslint-config": "^4.1.3",
|
||||
"@0x/types": "^3.3.0",
|
||||
"@0x/typescript-typings": "^5.1.5",
|
||||
"@0x/web3-wrapper": "^7.2.8",
|
||||
"@0x/types": "^3.3.1",
|
||||
"@0x/typescript-typings": "^5.1.6",
|
||||
"@0x/web3-wrapper": "^7.4.1",
|
||||
"@types/lodash": "4.14.104",
|
||||
"@types/mocha": "^5.2.7",
|
||||
"@types/node": "12.12.54",
|
||||
@@ -74,7 +74,7 @@
|
||||
"chai-as-promised": "^7.1.0",
|
||||
"chai-bignumber": "^3.0.0",
|
||||
"dirty-chai": "^2.0.1",
|
||||
"ethereum-types": "^3.3.3",
|
||||
"ethereum-types": "^3.4.0",
|
||||
"ethereumjs-util": "^5.1.1",
|
||||
"js-combinatorics": "^0.5.3",
|
||||
"make-promises-safe": "^1.1.0",
|
||||
@@ -88,13 +88,13 @@
|
||||
"typescript": "3.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@0x/base-contract": "^6.2.11",
|
||||
"@0x/contracts-dev-utils": "^1.3.12",
|
||||
"@0x/contracts-erc1155": "^2.1.14",
|
||||
"@0x/contracts-erc20": "^3.2.8",
|
||||
"@0x/contracts-erc721": "^3.1.14",
|
||||
"@0x/order-utils": "^10.4.6",
|
||||
"@0x/utils": "^6.1.0",
|
||||
"@0x/base-contract": "^6.2.18",
|
||||
"@0x/contracts-dev-utils": "^1.3.22",
|
||||
"@0x/contracts-erc1155": "^2.1.23",
|
||||
"@0x/contracts-erc20": "^3.3.2",
|
||||
"@0x/contracts-erc721": "^3.1.23",
|
||||
"@0x/order-utils": "^10.4.15",
|
||||
"@0x/utils": "^6.2.0",
|
||||
"lodash": "^4.17.11"
|
||||
},
|
||||
"publishConfig": {
|
||||
|
@@ -1,4 +1,94 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
|
@@ -5,6 +5,46 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
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
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-extensions",
|
||||
"version": "6.2.8",
|
||||
"version": "6.2.18",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@@ -52,23 +52,23 @@
|
||||
},
|
||||
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions",
|
||||
"devDependencies": {
|
||||
"@0x/abi-gen": "^5.4.7",
|
||||
"@0x/contracts-asset-proxy": "^3.6.5",
|
||||
"@0x/contracts-dev-utils": "^1.3.12",
|
||||
"@0x/contracts-erc20": "^3.2.8",
|
||||
"@0x/contracts-erc721": "^3.1.14",
|
||||
"@0x/contracts-exchange": "^3.2.14",
|
||||
"@0x/contracts-exchange-libs": "^4.3.14",
|
||||
"@0x/contracts-gen": "2.0.18",
|
||||
"@0x/contracts-utils": "^4.5.8",
|
||||
"@0x/dev-utils": "^4.0.1",
|
||||
"@0x/order-utils": "^10.4.6",
|
||||
"@0x/sol-compiler": "^4.2.7",
|
||||
"@0x/abi-gen": "^5.4.19",
|
||||
"@0x/contracts-asset-proxy": "^3.7.5",
|
||||
"@0x/contracts-dev-utils": "^1.3.22",
|
||||
"@0x/contracts-erc20": "^3.3.2",
|
||||
"@0x/contracts-erc721": "^3.1.23",
|
||||
"@0x/contracts-exchange": "^3.2.24",
|
||||
"@0x/contracts-exchange-libs": "^4.3.23",
|
||||
"@0x/contracts-gen": "^2.0.30",
|
||||
"@0x/contracts-utils": "^4.7.2",
|
||||
"@0x/dev-utils": "^4.2.1",
|
||||
"@0x/order-utils": "^10.4.15",
|
||||
"@0x/sol-compiler": "^4.5.2",
|
||||
"@0x/ts-doc-gen": "^0.0.28",
|
||||
"@0x/tslint-config": "^4.1.3",
|
||||
"@0x/types": "^3.3.0",
|
||||
"@0x/utils": "^6.1.0",
|
||||
"@0x/web3-wrapper": "^7.2.8",
|
||||
"@0x/types": "^3.3.1",
|
||||
"@0x/utils": "^6.2.0",
|
||||
"@0x/web3-wrapper": "^7.4.1",
|
||||
"@types/lodash": "4.14.104",
|
||||
"@types/mocha": "^5.2.7",
|
||||
"@types/node": "12.12.54",
|
||||
@@ -90,10 +90,10 @@
|
||||
"typescript": "3.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@0x/base-contract": "^6.2.11",
|
||||
"@0x/contracts-test-utils": "^5.3.11",
|
||||
"@0x/typescript-typings": "^5.1.5",
|
||||
"ethereum-types": "^3.3.3"
|
||||
"@0x/base-contract": "^6.2.18",
|
||||
"@0x/contracts-test-utils": "^5.3.20",
|
||||
"@0x/typescript-typings": "^5.1.6",
|
||||
"ethereum-types": "^3.4.0"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
|
@@ -1,4 +1,22 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
|
@@ -5,6 +5,14 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
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
|
||||
|
@@ -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",
|
||||
"version": "2.7.8",
|
||||
"version": "2.7.24",
|
||||
"private": true,
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@@ -38,7 +39,7 @@
|
||||
},
|
||||
"config": {
|
||||
"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."
|
||||
},
|
||||
"repository": {
|
||||
@@ -51,24 +52,25 @@
|
||||
},
|
||||
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/extensions",
|
||||
"devDependencies": {
|
||||
"@0x/abi-gen": "^5.4.7",
|
||||
"@0x/contract-addresses": "^5.3.0",
|
||||
"@0x/contract-wrappers": "^13.10.0",
|
||||
"@0x/contracts-broker": "^1.1.13",
|
||||
"@0x/contracts-coordinator": "^3.1.14",
|
||||
"@0x/contracts-dev-utils": "^1.3.12",
|
||||
"@0x/contracts-exchange-forwarder": "^4.2.14",
|
||||
"@0x/contracts-exchange-libs": "^4.3.14",
|
||||
"@0x/contracts-extensions": "^6.2.8",
|
||||
"@0x/contracts-gen": "2.0.18",
|
||||
"@0x/contracts-utils": "^4.5.8",
|
||||
"@0x/abi-gen": "^5.4.19",
|
||||
"@0x/contract-addresses": "^5.9.0",
|
||||
"@0x/contract-wrappers": "^13.12.2",
|
||||
"@0x/contracts-broker": "^1.1.23",
|
||||
"@0x/contracts-coordinator": "^3.1.24",
|
||||
"@0x/contracts-dev-utils": "^1.3.22",
|
||||
"@0x/contracts-exchange-forwarder": "^4.2.24",
|
||||
"@0x/contracts-exchange-libs": "^4.3.23",
|
||||
"@0x/contracts-extensions": "^6.2.18",
|
||||
"@0x/contracts-gen": "^2.0.30",
|
||||
"@0x/contracts-utils": "^4.7.2",
|
||||
"@0x/coordinator-server": "^1.0.5",
|
||||
"@0x/dev-utils": "^4.0.1",
|
||||
"@0x/migrations": "^6.5.0",
|
||||
"@0x/order-utils": "^10.4.6",
|
||||
"@0x/sol-compiler": "^4.2.7",
|
||||
"@0x/dev-utils": "^4.2.1",
|
||||
"@0x/migrations": "^6.5.11",
|
||||
"@0x/order-utils": "^10.4.15",
|
||||
"@0x/protocol-utils": "^1.1.5",
|
||||
"@0x/sol-compiler": "^4.5.2",
|
||||
"@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",
|
||||
"@types/lodash": "4.14.104",
|
||||
"@types/mocha": "^5.2.7",
|
||||
@@ -91,22 +93,22 @@
|
||||
"typescript": "3.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@0x/asset-swapper": "^5.1.0",
|
||||
"@0x/base-contract": "^6.2.11",
|
||||
"@0x/contracts-asset-proxy": "^3.6.5",
|
||||
"@0x/contracts-erc1155": "^2.1.14",
|
||||
"@0x/contracts-erc20": "^3.2.8",
|
||||
"@0x/contracts-erc721": "^3.1.14",
|
||||
"@0x/contracts-exchange": "^3.2.14",
|
||||
"@0x/contracts-multisig": "^4.1.14",
|
||||
"@0x/contracts-staking": "^2.0.21",
|
||||
"@0x/contracts-test-utils": "^5.3.11",
|
||||
"@0x/contracts-zero-ex": "^0.9.0",
|
||||
"@0x/subproviders": "^6.1.9",
|
||||
"@0x/types": "^3.3.0",
|
||||
"@0x/typescript-typings": "^5.1.5",
|
||||
"@0x/utils": "^6.1.0",
|
||||
"ethereum-types": "^3.3.3",
|
||||
"@0x/asset-swapper": "^5.8.1",
|
||||
"@0x/base-contract": "^6.2.18",
|
||||
"@0x/contracts-asset-proxy": "^3.7.5",
|
||||
"@0x/contracts-erc1155": "^2.1.23",
|
||||
"@0x/contracts-erc20": "^3.3.2",
|
||||
"@0x/contracts-erc721": "^3.1.23",
|
||||
"@0x/contracts-exchange": "^3.2.24",
|
||||
"@0x/contracts-multisig": "^4.1.24",
|
||||
"@0x/contracts-staking": "^2.0.31",
|
||||
"@0x/contracts-test-utils": "^5.3.20",
|
||||
"@0x/contracts-zero-ex": "^0.18.1",
|
||||
"@0x/subproviders": "^6.4.1",
|
||||
"@0x/types": "^3.3.1",
|
||||
"@0x/typescript-typings": "^5.1.6",
|
||||
"@0x/utils": "^6.2.0",
|
||||
"ethereum-types": "^3.4.0",
|
||||
"ethereumjs-util": "^6.2.0",
|
||||
"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 TestEth2Dai from '../test/generated-artifacts/TestEth2Dai.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 TestMainnetAggregatorFills from '../test/generated-artifacts/TestMainnetAggregatorFills.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 TestUniswapExchange from '../test/generated-artifacts/TestUniswapExchange.json';
|
||||
import * as TestUniswapExchangeFactory from '../test/generated-artifacts/TestUniswapExchangeFactory.json';
|
||||
import * as TestWethIntegration from '../test/generated-artifacts/TestWethIntegration.json';
|
||||
export const artifacts = {
|
||||
ChainlinkStopLimit: ChainlinkStopLimit as ContractArtifact,
|
||||
IChainlinkAggregator: IChainlinkAggregator as ContractArtifact,
|
||||
@@ -26,10 +29,13 @@ export const artifacts = {
|
||||
TestDydxUser: TestDydxUser as ContractArtifact,
|
||||
TestEth2Dai: TestEth2Dai as ContractArtifact,
|
||||
TestEth2DaiBridge: TestEth2DaiBridge as ContractArtifact,
|
||||
TestFixinProtocolFeesIntegration: TestFixinProtocolFeesIntegration as ContractArtifact,
|
||||
TestFramework: TestFramework as ContractArtifact,
|
||||
TestMainnetAggregatorFills: TestMainnetAggregatorFills as ContractArtifact,
|
||||
TestSignatureValidationWallet: TestSignatureValidationWallet as ContractArtifact,
|
||||
TestStaking: TestStaking as ContractArtifact,
|
||||
TestUniswapBridge: TestUniswapBridge as ContractArtifact,
|
||||
TestUniswapExchange: TestUniswapExchange as ContractArtifact,
|
||||
TestUniswapExchangeFactory: TestUniswapExchangeFactory as ContractArtifact,
|
||||
TestWethIntegration: TestWethIntegration as ContractArtifact,
|
||||
};
|
||||
|
@@ -6,24 +6,31 @@ import {
|
||||
artifacts as exchangeProxyArtifacts,
|
||||
IZeroExContract,
|
||||
LogMetadataTransformerContract,
|
||||
signCallData,
|
||||
} from '@0x/contracts-zero-ex';
|
||||
import { migrateOnceAsync } from '@0x/migrations';
|
||||
import { assetDataUtils, signatureUtils, SignedExchangeProxyMetaTransaction } from '@0x/order-utils';
|
||||
import {
|
||||
assetDataUtils,
|
||||
encodeFillQuoteTransformerData,
|
||||
encodePayTakerTransformerData,
|
||||
ETH_TOKEN_ADDRESS,
|
||||
FillQuoteTransformerSide,
|
||||
findTransformerNonce,
|
||||
signatureUtils,
|
||||
SignedExchangeProxyMetaTransaction,
|
||||
} from '@0x/order-utils';
|
||||
Signature,
|
||||
} from '@0x/protocol-utils';
|
||||
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';
|
||||
|
||||
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 => {
|
||||
const quoteSignerKey = hexUtils.random();
|
||||
@@ -188,21 +195,6 @@ blockchainTests.resets('exchange proxy - meta-transactions', env => {
|
||||
.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(
|
||||
data: string,
|
||||
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 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 mtx = await createMetaTransactionAsync(signedSwapData, _protocolFee, 0);
|
||||
const mtx = await createMetaTransactionAsync(getSwapData(swap), _protocolFee, 0);
|
||||
const relayerEthBalanceBefore = await env.web3Wrapper.getBalanceInWeiAsync(relayer);
|
||||
const receipt = await zeroEx
|
||||
.executeMetaTransaction(mtx, mtx.signature)
|
||||
.executeMetaTransaction(mtx, sigstruct(mtx.signature))
|
||||
.awaitTransactionSuccessAsync({ from: relayer, value: mtx.value, gasPrice: GAS_PRICE });
|
||||
const relayerEthRefund = relayerEthBalanceBefore
|
||||
.minus(await env.web3Wrapper.getBalanceInWeiAsync(relayer))
|
||||
@@ -259,7 +249,6 @@ blockchainTests.resets('exchange proxy - meta-transactions', env => {
|
||||
[
|
||||
{
|
||||
taker,
|
||||
callDataHash,
|
||||
sender: zeroEx.address,
|
||||
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 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 mtx = await createMetaTransactionAsync(signedSwapData, _protocolFee);
|
||||
const mtx = await createMetaTransactionAsync(getSwapData(swap), _protocolFee);
|
||||
const relayerEthBalanceBefore = await env.web3Wrapper.getBalanceInWeiAsync(relayer);
|
||||
const receipt = await zeroEx
|
||||
.executeMetaTransaction(mtx, mtx.signature)
|
||||
.executeMetaTransaction(mtx, sigstruct(mtx.signature))
|
||||
.awaitTransactionSuccessAsync({ from: relayer, value: mtx.value, gasPrice: GAS_PRICE });
|
||||
const relayerEthRefund = relayerEthBalanceBefore
|
||||
.minus(await env.web3Wrapper.getBalanceInWeiAsync(relayer))
|
||||
@@ -295,7 +282,6 @@ blockchainTests.resets('exchange proxy - meta-transactions', env => {
|
||||
[
|
||||
{
|
||||
taker,
|
||||
callDataHash,
|
||||
sender: zeroEx.address,
|
||||
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 () => {
|
||||
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 () => {
|
||||
it('`transformERC20()` can fill RFQT order', async () => {
|
||||
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 mtx = await createMetaTransactionAsync(signedSwapData, _protocolFee, 0);
|
||||
const mtx = await createMetaTransactionAsync(getSwapData(swap), _protocolFee, 0);
|
||||
const relayerEthBalanceBefore = await env.web3Wrapper.getBalanceInWeiAsync(relayer);
|
||||
const receipt = await zeroEx
|
||||
.executeMetaTransaction(mtx, mtx.signature)
|
||||
.executeMetaTransaction(mtx, sigstruct(mtx.signature))
|
||||
.awaitTransactionSuccessAsync({ from: relayer, value: mtx.value, gasPrice: GAS_PRICE });
|
||||
const relayerEthRefund = relayerEthBalanceBefore
|
||||
.minus(await env.web3Wrapper.getBalanceInWeiAsync(relayer))
|
||||
@@ -367,7 +315,6 @@ blockchainTests.resets('exchange proxy - meta-transactions', env => {
|
||||
[
|
||||
{
|
||||
taker,
|
||||
callDataHash,
|
||||
sender: zeroEx.address,
|
||||
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 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 mtx = await createMetaTransactionAsync(callData, _protocolFee, 0);
|
||||
const relayerEthBalanceBefore = await env.web3Wrapper.getBalanceInWeiAsync(relayer);
|
||||
await zeroEx.setQuoteSigner(NULL_ADDRESS).awaitTransactionSuccessAsync({ from: owner });
|
||||
const receipt = await zeroEx
|
||||
.executeMetaTransaction(mtx, mtx.signature)
|
||||
.executeMetaTransaction(mtx, sigstruct(mtx.signature))
|
||||
.awaitTransactionSuccessAsync({ from: relayer, value: mtx.value, gasPrice: GAS_PRICE });
|
||||
const relayerEthRefund = relayerEthBalanceBefore
|
||||
.minus(await env.web3Wrapper.getBalanceInWeiAsync(relayer))
|
||||
@@ -404,7 +350,6 @@ blockchainTests.resets('exchange proxy - meta-transactions', env => {
|
||||
[
|
||||
{
|
||||
taker,
|
||||
callDataHash,
|
||||
sender: zeroEx.address,
|
||||
data: NULL_BYTES,
|
||||
},
|
||||
@@ -412,15 +357,4 @@ blockchainTests.resets('exchange proxy - meta-transactions', env => {
|
||||
'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_eth2_dai';
|
||||
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_mainnet_aggregator_fills';
|
||||
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_exchange';
|
||||
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/TestEth2Dai.json",
|
||||
"test/generated-artifacts/TestEth2DaiBridge.json",
|
||||
"test/generated-artifacts/TestFixinProtocolFeesIntegration.json",
|
||||
"test/generated-artifacts/TestFramework.json",
|
||||
"test/generated-artifacts/TestMainnetAggregatorFills.json",
|
||||
"test/generated-artifacts/TestSignatureValidationWallet.json",
|
||||
"test/generated-artifacts/TestStaking.json",
|
||||
"test/generated-artifacts/TestUniswapBridge.json",
|
||||
"test/generated-artifacts/TestUniswapExchange.json",
|
||||
"test/generated-artifacts/TestUniswapExchangeFactory.json"
|
||||
"test/generated-artifacts/TestUniswapExchangeFactory.json",
|
||||
"test/generated-artifacts/TestWethIntegration.json"
|
||||
]
|
||||
}
|
||||
|
@@ -1,4 +1,94 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
|
@@ -5,6 +5,46 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
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
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-multisig",
|
||||
"version": "4.1.14",
|
||||
"version": "4.1.24",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@@ -49,18 +49,18 @@
|
||||
},
|
||||
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/multisig",
|
||||
"devDependencies": {
|
||||
"@0x/abi-gen": "^5.4.7",
|
||||
"@0x/contracts-asset-proxy": "^3.6.5",
|
||||
"@0x/contracts-erc20": "^3.2.8",
|
||||
"@0x/contracts-gen": "2.0.18",
|
||||
"@0x/contracts-test-utils": "^5.3.11",
|
||||
"@0x/contracts-utils": "^4.5.8",
|
||||
"@0x/dev-utils": "^4.0.1",
|
||||
"@0x/sol-compiler": "^4.2.7",
|
||||
"@0x/abi-gen": "^5.4.19",
|
||||
"@0x/contracts-asset-proxy": "^3.7.5",
|
||||
"@0x/contracts-erc20": "^3.3.2",
|
||||
"@0x/contracts-gen": "^2.0.30",
|
||||
"@0x/contracts-test-utils": "^5.3.20",
|
||||
"@0x/contracts-utils": "^4.7.2",
|
||||
"@0x/dev-utils": "^4.2.1",
|
||||
"@0x/sol-compiler": "^4.5.2",
|
||||
"@0x/tslint-config": "^4.1.3",
|
||||
"@0x/types": "^3.3.0",
|
||||
"@0x/utils": "^6.1.0",
|
||||
"@0x/web3-wrapper": "^7.2.8",
|
||||
"@0x/types": "^3.3.1",
|
||||
"@0x/utils": "^6.2.0",
|
||||
"@0x/web3-wrapper": "^7.4.1",
|
||||
"@types/lodash": "4.14.104",
|
||||
"@types/mocha": "^5.2.7",
|
||||
"@types/node": "12.12.54",
|
||||
@@ -78,9 +78,9 @@
|
||||
"typescript": "3.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@0x/base-contract": "^6.2.11",
|
||||
"@0x/typescript-typings": "^5.1.5",
|
||||
"ethereum-types": "^3.3.3"
|
||||
"@0x/base-contract": "^6.2.18",
|
||||
"@0x/typescript-typings": "^5.1.6",
|
||||
"ethereum-types": "^3.4.0"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
|
@@ -1,4 +1,94 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
|
@@ -5,6 +5,46 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
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
|
||||
|
@@ -2,7 +2,7 @@
|
||||
"artifactsDir": "./test/generated-artifacts",
|
||||
"contractsDir": "./contracts",
|
||||
"useDockerisedSolc": false,
|
||||
"isOfflineMode": true,
|
||||
"isOfflineMode": false,
|
||||
"shouldSaveStandardInput": true,
|
||||
"compilerSettings": {
|
||||
"evmVersion": "istanbul",
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-staking",
|
||||
"version": "2.0.21",
|
||||
"version": "2.0.31",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@@ -53,20 +53,20 @@
|
||||
},
|
||||
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/tokens",
|
||||
"devDependencies": {
|
||||
"@0x/abi-gen": "^5.4.7",
|
||||
"@0x/contracts-asset-proxy": "^3.6.5",
|
||||
"@0x/contracts-dev-utils": "^1.3.12",
|
||||
"@0x/contracts-erc20": "^3.2.8",
|
||||
"@0x/contracts-exchange-libs": "^4.3.14",
|
||||
"@0x/contracts-gen": "2.0.18",
|
||||
"@0x/contracts-utils": "^4.5.8",
|
||||
"@0x/dev-utils": "^4.0.1",
|
||||
"@0x/order-utils": "^10.4.6",
|
||||
"@0x/sol-compiler": "^4.2.7",
|
||||
"@0x/abi-gen": "^5.4.19",
|
||||
"@0x/contracts-asset-proxy": "^3.7.5",
|
||||
"@0x/contracts-dev-utils": "^1.3.22",
|
||||
"@0x/contracts-erc20": "^3.3.2",
|
||||
"@0x/contracts-exchange-libs": "^4.3.23",
|
||||
"@0x/contracts-gen": "^2.0.30",
|
||||
"@0x/contracts-utils": "^4.7.2",
|
||||
"@0x/dev-utils": "^4.2.1",
|
||||
"@0x/order-utils": "^10.4.15",
|
||||
"@0x/sol-compiler": "^4.5.2",
|
||||
"@0x/ts-doc-gen": "^0.0.28",
|
||||
"@0x/tslint-config": "^4.1.3",
|
||||
"@0x/types": "^3.3.0",
|
||||
"@0x/web3-wrapper": "^7.2.8",
|
||||
"@0x/types": "^3.3.1",
|
||||
"@0x/web3-wrapper": "^7.4.1",
|
||||
"@types/lodash": "4.14.104",
|
||||
"@types/node": "12.12.54",
|
||||
"chai": "^4.0.1",
|
||||
@@ -87,11 +87,11 @@
|
||||
"typescript": "3.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@0x/base-contract": "^6.2.11",
|
||||
"@0x/contracts-test-utils": "^5.3.11",
|
||||
"@0x/typescript-typings": "^5.1.5",
|
||||
"@0x/utils": "^6.1.0",
|
||||
"ethereum-types": "^3.3.3",
|
||||
"@0x/base-contract": "^6.2.18",
|
||||
"@0x/contracts-test-utils": "^5.3.20",
|
||||
"@0x/typescript-typings": "^5.1.6",
|
||||
"@0x/utils": "^6.2.0",
|
||||
"ethereum-types": "^3.4.0",
|
||||
"ethereumjs-util": "^5.1.1"
|
||||
},
|
||||
"publishConfig": {
|
||||
|
@@ -1,4 +1,85 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
|
@@ -5,6 +5,42 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
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
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-test-utils",
|
||||
"version": "5.3.11",
|
||||
"version": "5.3.20",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@@ -34,7 +34,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/test-utils",
|
||||
"devDependencies": {
|
||||
"@0x/sol-compiler": "^4.2.7",
|
||||
"@0x/sol-compiler": "^4.5.2",
|
||||
"@0x/tslint-config": "^4.1.3",
|
||||
"npm-run-all": "^4.1.2",
|
||||
"shx": "^0.2.2",
|
||||
@@ -42,20 +42,20 @@
|
||||
"typescript": "3.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@0x/assert": "^3.0.17",
|
||||
"@0x/base-contract": "^6.2.11",
|
||||
"@0x/contract-addresses": "^5.3.0",
|
||||
"@0x/dev-utils": "^4.0.1",
|
||||
"@0x/json-schemas": "^5.3.3",
|
||||
"@0x/order-utils": "^10.4.6",
|
||||
"@0x/sol-coverage": "^4.0.18",
|
||||
"@0x/sol-profiler": "^4.1.8",
|
||||
"@0x/sol-trace": "^3.0.18",
|
||||
"@0x/subproviders": "^6.1.9",
|
||||
"@0x/types": "^3.3.0",
|
||||
"@0x/typescript-typings": "^5.1.5",
|
||||
"@0x/utils": "^6.1.0",
|
||||
"@0x/web3-wrapper": "^7.2.8",
|
||||
"@0x/assert": "^3.0.21",
|
||||
"@0x/base-contract": "^6.2.18",
|
||||
"@0x/contract-addresses": "^5.9.0",
|
||||
"@0x/dev-utils": "^4.2.1",
|
||||
"@0x/json-schemas": "^5.4.1",
|
||||
"@0x/order-utils": "^10.4.15",
|
||||
"@0x/sol-coverage": "^4.0.29",
|
||||
"@0x/sol-profiler": "^4.1.19",
|
||||
"@0x/sol-trace": "^3.0.29",
|
||||
"@0x/subproviders": "^6.4.1",
|
||||
"@0x/types": "^3.3.1",
|
||||
"@0x/typescript-typings": "^5.1.6",
|
||||
"@0x/utils": "^6.2.0",
|
||||
"@0x/web3-wrapper": "^7.4.1",
|
||||
"@types/bn.js": "^4.11.0",
|
||||
"@types/js-combinatorics": "^0.5.29",
|
||||
"@types/lodash": "4.14.104",
|
||||
@@ -67,7 +67,7 @@
|
||||
"chai-bignumber": "^3.0.0",
|
||||
"decimal.js": "^10.2.0",
|
||||
"dirty-chai": "^2.0.1",
|
||||
"ethereum-types": "^3.3.3",
|
||||
"ethereum-types": "^3.4.0",
|
||||
"ethereumjs-util": "^5.1.1",
|
||||
"ethers": "~4.0.4",
|
||||
"js-combinatorics": "^0.5.3",
|
||||
|
@@ -1,4 +1,91 @@
|
||||
[
|
||||
{
|
||||
"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",
|
||||
|
@@ -5,6 +5,43 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
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
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
|
||||
Copyright 2020 ZeroEx Intl.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
|
||||
Copyright 2020 ZeroEx Intl.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
|
||||
Copyright 2019 ZeroEx Intl.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
|
||||
Copyright 2020 ZeroEx Intl.
|
||||
@@ -105,4 +106,100 @@ library LibSafeMathV06 {
|
||||
{
|
||||
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.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
|
||||
Copyright 2020 ZeroEx Intl.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
|
||||
Copyright 2020 ZeroEx Intl.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
|
||||
Copyright 2020 ZeroEx Intl.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
|
||||
Copyright 2020 ZeroEx Intl.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
|
||||
Copyright 2020 ZeroEx Intl.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
|
||||
Copyright 2020 ZeroEx Intl.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
|
||||
Copyright 2020 ZeroEx Intl.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
|
||||
Copyright 2020 ZeroEx Intl.
|
||||
@@ -39,7 +40,8 @@ library LibSafeMathRichErrorsV06 {
|
||||
enum DowncastErrorCodes {
|
||||
VALUE_TOO_LARGE_TO_DOWNCAST_TO_UINT32,
|
||||
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
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
|
||||
Copyright 2020 ZeroEx Intl.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
|
||||
Copyright 2020 ZeroEx Intl.
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@0x/contracts-utils",
|
||||
"version": "4.5.8",
|
||||
"version": "4.7.2",
|
||||
"engines": {
|
||||
"node": ">=6.12"
|
||||
},
|
||||
@@ -50,15 +50,15 @@
|
||||
},
|
||||
"homepage": "https://github.com/0xProject/protocol/tree/main/contracts/utils",
|
||||
"devDependencies": {
|
||||
"@0x/abi-gen": "^5.4.7",
|
||||
"@0x/contracts-gen": "2.0.18",
|
||||
"@0x/contracts-test-utils": "^5.3.11",
|
||||
"@0x/dev-utils": "^4.0.1",
|
||||
"@0x/order-utils": "^10.4.6",
|
||||
"@0x/sol-compiler": "^4.2.7",
|
||||
"@0x/abi-gen": "^5.4.19",
|
||||
"@0x/contracts-gen": "^2.0.30",
|
||||
"@0x/contracts-test-utils": "^5.3.20",
|
||||
"@0x/dev-utils": "^4.2.1",
|
||||
"@0x/order-utils": "^10.4.15",
|
||||
"@0x/sol-compiler": "^4.5.2",
|
||||
"@0x/tslint-config": "^4.1.3",
|
||||
"@0x/types": "^3.3.0",
|
||||
"@0x/web3-wrapper": "^7.2.8",
|
||||
"@0x/types": "^3.3.1",
|
||||
"@0x/web3-wrapper": "^7.4.1",
|
||||
"@types/bn.js": "^4.11.0",
|
||||
"@types/lodash": "4.14.104",
|
||||
"@types/mocha": "^5.2.7",
|
||||
@@ -79,11 +79,11 @@
|
||||
"typescript": "3.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@0x/base-contract": "^6.2.11",
|
||||
"@0x/typescript-typings": "^5.1.5",
|
||||
"@0x/utils": "^6.1.0",
|
||||
"@0x/base-contract": "^6.2.18",
|
||||
"@0x/typescript-typings": "^5.1.6",
|
||||
"@0x/utils": "^6.2.0",
|
||||
"bn.js": "^4.11.8",
|
||||
"ethereum-types": "^3.3.3"
|
||||
"ethereum-types": "^3.4.0"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
|
@@ -8,3 +8,4 @@
|
||||
# Blacklist tests in lib
|
||||
/lib/test/*
|
||||
# Package specific ignore
|
||||
/lib/scripts/*
|
||||
|
@@ -1,4 +1,200 @@
|
||||
[
|
||||
{
|
||||
"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": [
|
||||
@@ -55,6 +251,10 @@
|
||||
{
|
||||
"note": "Add `LibSignature` library",
|
||||
"pr": 21
|
||||
},
|
||||
{
|
||||
"note": "Add `LimitOrdersFeature`",
|
||||
"pr": 27
|
||||
}
|
||||
],
|
||||
"timestamp": 1604355662
|
||||
|
@@ -5,6 +5,72 @@ Edit the package's CHANGELOG.json file only.
|
||||
|
||||
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)
|
||||
@@ -25,6 +91,7 @@ CHANGELOG
|
||||
|
||||
* Add support for collecting protocol fees in ETH or WETH (#2)
|
||||
* Add `LibSignature` library (#21)
|
||||
* Add `LimitOrdersFeature` (#27)
|
||||
|
||||
## v0.5.1 - _October 28, 2020_
|
||||
|
||||
|
@@ -4,6 +4,7 @@
|
||||
"useDockerisedSolc": false,
|
||||
"isOfflineMode": false,
|
||||
"shouldSaveStandardInput": true,
|
||||
"shouldCompileIndependently": true,
|
||||
"compilerSettings": {
|
||||
"evmVersion": "istanbul",
|
||||
"optimizer": {
|
||||
@@ -19,7 +20,8 @@
|
||||
"evm.bytecode.object",
|
||||
"evm.bytecode.sourceMap",
|
||||
"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.
|
||||
@@ -22,11 +23,11 @@ pragma experimental ABIEncoderV2;
|
||||
import "./features/IOwnableFeature.sol";
|
||||
import "./features/ISimpleFunctionRegistryFeature.sol";
|
||||
import "./features/ITokenSpenderFeature.sol";
|
||||
import "./features/ISignatureValidatorFeature.sol";
|
||||
import "./features/ITransformERC20Feature.sol";
|
||||
import "./features/IMetaTransactionsFeature.sol";
|
||||
import "./features/IUniswapFeature.sol";
|
||||
import "./features/ILiquidityProviderFeature.sol";
|
||||
import "./features/INativeOrdersFeature.sol";
|
||||
|
||||
|
||||
/// @dev Interface for a fully featured Exchange Proxy.
|
||||
@@ -34,11 +35,11 @@ interface IZeroEx is
|
||||
IOwnableFeature,
|
||||
ISimpleFunctionRegistryFeature,
|
||||
ITokenSpenderFeature,
|
||||
ISignatureValidatorFeature,
|
||||
ITransformERC20Feature,
|
||||
IMetaTransactionsFeature,
|
||||
IUniswapFeature,
|
||||
ILiquidityProviderFeature
|
||||
ILiquidityProviderFeature,
|
||||
INativeOrdersFeature
|
||||
{
|
||||
// solhint-disable state-visibility
|
||||
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
|
||||
Copyright 2020 ZeroEx Intl.
|
||||
@@ -19,12 +20,19 @@
|
||||
pragma solidity ^0.6.5;
|
||||
pragma experimental ABIEncoderV2;
|
||||
|
||||
import "@0x/contracts-utils/contracts/src/v06/LibBytesV06.sol";
|
||||
import "./migrations/LibBootstrap.sol";
|
||||
import "./features/BootstrapFeature.sol";
|
||||
import "./storage/LibProxyStorage.sol";
|
||||
import "./errors/LibProxyRichErrors.sol";
|
||||
|
||||
|
||||
/// @dev An extensible proxy contract that serves as a universal entry point for
|
||||
/// interacting with the 0x protocol.
|
||||
contract ZeroEx {
|
||||
// solhint-disable separate-by-one-line-in-contract,indent,var-name-mixedcase
|
||||
using LibBytesV06 for bytes;
|
||||
|
||||
/// @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.
|
||||
@@ -37,55 +45,48 @@ contract ZeroEx {
|
||||
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)
|
||||
bytes4 selector = msg.data.readBytes4(0);
|
||||
address impl = getFunctionImplementation(selector);
|
||||
if (impl == address(0)) {
|
||||
_revertWithData(LibProxyRichErrors.NotImplementedError(selector));
|
||||
}
|
||||
|
||||
(bool success, bytes memory resultData) = impl.delegatecall(msg.data);
|
||||
if (!success) {
|
||||
_revertWithData(resultData);
|
||||
}
|
||||
_returnWithData(resultData);
|
||||
}
|
||||
|
||||
/// @dev Fallback for just receiving ether.
|
||||
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)
|
||||
public
|
||||
view
|
||||
returns (address impl)
|
||||
{
|
||||
return LibProxyStorage.getStorage().impls[selector];
|
||||
}
|
||||
|
||||
/// @dev Revert with arbitrary bytes.
|
||||
/// @param data Revert data.
|
||||
function _revertWithData(bytes memory data) private pure {
|
||||
assembly { revert(add(data, 32), mload(data)) }
|
||||
}
|
||||
|
||||
/// @dev Return with arbitrary bytes.
|
||||
/// @param data Return data.
|
||||
function _returnWithData(bytes memory data) private pure {
|
||||
assembly { return(add(data, 32), mload(data)) }
|
||||
}
|
||||
}
|
||||
|
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.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
|
||||
Copyright 2020 ZeroEx Intl.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
|
||||
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.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
|
||||
Copyright 2020 ZeroEx Intl.
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
/*
|
||||
|
||||
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