Skip to content
This repository has been archived by the owner on Jul 9, 2021. It is now read-only.

Refactor library usage #2055

Merged
merged 44 commits into from
Aug 16, 2019
Merged
Show file tree
Hide file tree
Changes from 42 commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
2251e5e
Optimize LibEIP712
abandeali1 Jul 9, 2019
7d5276a
Remove LibExchangeSelectors.sol
abandeali1 Jul 10, 2019
2e97cfa
Remove LibAssetProxyIds and TestLibConstants
abandeali1 Jul 10, 2019
d153ac0
Make remaining functions public
abandeali1 Jul 10, 2019
58ee444
Remove remaining hard coded selectors
abandeali1 Jul 10, 2019
65f17fd
Make LibEIP712 a library
abandeali1 Jul 11, 2019
2427152
Do not inherit libs
abandeali1 Jul 24, 2019
b05a2a9
Move FillResults calculations into LibFillResults
abandeali1 Jul 24, 2019
a8cd168
Cleanup imports
abandeali1 Jul 24, 2019
52dcd99
Add library implementation of SafeMath
abandeali1 Jul 30, 2019
6ca9d4e
Convert LibMath to library
abandeali1 Jul 30, 2019
28e781d
Convert LibFillResults to library
abandeali1 Jul 30, 2019
74a5c8c
Simplify LibEIP712ExchangeDomain to be used only for generating domai…
abandeali1 Jul 30, 2019
f45014f
Convert LibOrder and LibZeroExTransaction to libraries
abandeali1 Jul 30, 2019
7eb64eb
Update test contracts
abandeali1 Jul 30, 2019
ae859fa
Update Exchange contract to use libraries
abandeali1 Jul 30, 2019
9b786df
Update test contracts
abandeali1 Jul 30, 2019
0df360c
Fix compile errors
abandeali1 Aug 11, 2019
245956c
Create test contracts for each exchange lib
abandeali1 Aug 11, 2019
31c2b36
Fix build errors in exchange package contracts
abandeali1 Aug 11, 2019
2e519b5
Fix build in OrderValidationUtils
abandeali1 Aug 11, 2019
24eaf93
Move all exchange-libs tests to separate files
abandeali1 Aug 11, 2019
5016d50
Move calculateFillResults tests to exchange-libs package
abandeali1 Aug 11, 2019
d6772b4
Fix linting errors
abandeali1 Aug 11, 2019
45f229c
Move LibEIP712ExchangeDomain tests to own file
abandeali1 Aug 11, 2019
3afce21
Add rrevert to safeDiv in LibSafeMath
abandeali1 Aug 11, 2019
88d055c
Make function public method of Compiler class
abandeali1 Aug 11, 2019
fb7b51d
Get contracts list from Compiler class to add support for reading all…
abandeali1 Aug 11, 2019
e91ba07
Do not overwrite all contracts identifier in compiler.json
abandeali1 Aug 11, 2019
ccce7e0
Compile all contracts by default, regenerate boilerplate
abandeali1 Aug 11, 2019
0e2616f
Rename _rrevert to rrevert
abandeali1 Aug 11, 2019
7cfceeb
Remove unused ABIEncoderV2 pragma
abandeali1 Aug 11, 2019
26e4d66
Remove unimplemented functions from interface
abandeali1 Aug 11, 2019
d3b8070
Fix TestValidatorWallet by using new LibOrder and LibZeroExTransactio…
abandeali1 Aug 12, 2019
dc31294
Move LibExchangeRichErrors to exchange-libs package
abandeali1 Aug 12, 2019
1aec5e4
Remove coordinator from CI tests
abandeali1 Aug 12, 2019
5543651
Regenerate boilerplate for exchange-libs package
abandeali1 Aug 13, 2019
070147d
Fix build errors
abandeali1 Aug 13, 2019
c5d4559
Remove generate-exchange-selectors script
abandeali1 Aug 13, 2019
2da996f
Hard code chainId in tests
abandeali1 Aug 13, 2019
1dae1d2
Rename hashing functions in LibOrder and LibZeroExTransaction
abandeali1 Aug 14, 2019
7ac30c5
Merge branch '3.0' into feat/3.0/optimizeConstants
abandeali1 Aug 15, 2019
cc3be94
Move MatchedFillResults constants closer to tests where they are util…
abandeali1 Aug 15, 2019
8402d21
Update CHANGELOGs
abandeali1 Aug 15, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,13 +90,15 @@ jobs:
- restore_cache:
keys:
- repo-{{ .Environment.CIRCLE_SHA1 }}
- run: yarn wsrun test:circleci @0x/contracts-multisig @0x/contracts-utils @0x/contracts-exchange-libs @0x/contracts-erc20 @0x/contracts-erc721 @0x/contracts-erc1155 @0x/contracts-asset-proxy @0x/contracts-exchange @0x/contracts-coordinator @0x/contracts-dev-utils @0x/contracts-staking
- run: yarn wsrun test:circleci @0x/contracts-multisig @0x/contracts-utils @0x/contracts-exchange-libs @0x/contracts-erc20 @0x/contracts-erc721 @0x/contracts-erc1155 @0x/contracts-asset-proxy @0x/contracts-exchange @0x/contracts-dev-utils @0x/contracts-staking
# TODO(dorothy-zbornak): Re-enable after updating this package for 3.0.
# - run: yarn wsrun test:circleci @0x/contracts-extensions
# TODO(dorothy-zbornak): Re-enable after updating this package for 3.0.
# - run: yarn wsrun test:circleci @0x/contracts-exchange-forwarder
# TODO(dorothy-zbornak): Re-enable after this package is complete.
# - run: yarn wsrun test:circleci @0x/contracts-staking
# TODO(abandeali): Re-enable after this package is complete.
# - run: yarn wsrun test:circleci @0x/contracts-coordinator
test-contracts-geth:
docker:
- image: circleci/node:9-browsers
Expand Down
14 changes: 1 addition & 13 deletions contracts/asset-proxy/compiler.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,5 @@
]
}
}
},
"contracts": [
"archive/MixinAuthorizable.sol",
"src/ERC1155Proxy.sol",
"src/ERC20Proxy.sol",
"src/ERC721Proxy.sol",
"src/MultiAssetProxy.sol",
"src/StaticCallProxy.sol",
"src/interfaces/IAssetData.sol",
"src/interfaces/IAssetProxy.sol",
"src/interfaces/IAuthorizable.sol",
"test/TestStaticCallTarget.sol"
]
}
}
40 changes: 0 additions & 40 deletions contracts/asset-proxy/contracts/src/libs/LibAssetProxyIds.sol

This file was deleted.

4 changes: 2 additions & 2 deletions contracts/asset-proxy/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"scripts": {
"build": "yarn pre_build && tsc -b",
"build:ci": "yarn build",
"pre_build": "run-s compile generate_contract_wrappers",
"pre_build": "run-s compile contracts:gen generate_contract_wrappers",
"test": "yarn run_mocha",
"rebuild_and_test": "run-s build test",
"test:coverage": "SOLIDITY_COVERAGE=true run-s build run_mocha coverage:report:text coverage:report:lcov",
Expand All @@ -34,7 +34,7 @@
"lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol"
},
"config": {
"abis": "./generated-artifacts/@(ERC1155Proxy|ERC20Proxy|ERC721Proxy|IAssetData|IAssetProxy|IAuthorizable|MixinAuthorizable|MultiAssetProxy|StaticCallProxy|TestStaticCallTarget).json",
"abis": "./generated-artifacts/@(ERC1155Proxy|ERC20Proxy|ERC721Proxy|IAssetData|IAssetProxy|IAssetProxyDispatcher|IAuthorizable|MixinAssetProxyDispatcher|MixinAuthorizable|MultiAssetProxy|Ownable|StaticCallProxy|TestStaticCallTarget).json",
"abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually."
},
"repository": {
Expand Down
8 changes: 7 additions & 1 deletion contracts/asset-proxy/src/artifacts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,26 @@ import * as ERC20Proxy from '../generated-artifacts/ERC20Proxy.json';
import * as ERC721Proxy from '../generated-artifacts/ERC721Proxy.json';
import * as IAssetData from '../generated-artifacts/IAssetData.json';
import * as IAssetProxy from '../generated-artifacts/IAssetProxy.json';
import * as IAssetProxyDispatcher from '../generated-artifacts/IAssetProxyDispatcher.json';
import * as IAuthorizable from '../generated-artifacts/IAuthorizable.json';
import * as MixinAssetProxyDispatcher from '../generated-artifacts/MixinAssetProxyDispatcher.json';
import * as MixinAuthorizable from '../generated-artifacts/MixinAuthorizable.json';
import * as MultiAssetProxy from '../generated-artifacts/MultiAssetProxy.json';
import * as Ownable from '../generated-artifacts/Ownable.json';
import * as StaticCallProxy from '../generated-artifacts/StaticCallProxy.json';
import * as TestStaticCallTarget from '../generated-artifacts/TestStaticCallTarget.json';
export const artifacts = {
MixinAssetProxyDispatcher: MixinAssetProxyDispatcher as ContractArtifact,
MixinAuthorizable: MixinAuthorizable as ContractArtifact,
Ownable: Ownable as ContractArtifact,
ERC1155Proxy: ERC1155Proxy as ContractArtifact,
ERC20Proxy: ERC20Proxy as ContractArtifact,
ERC721Proxy: ERC721Proxy as ContractArtifact,
MixinAuthorizable: MixinAuthorizable as ContractArtifact,
MultiAssetProxy: MultiAssetProxy as ContractArtifact,
StaticCallProxy: StaticCallProxy as ContractArtifact,
IAssetData: IAssetData as ContractArtifact,
IAssetProxy: IAssetProxy as ContractArtifact,
IAssetProxyDispatcher: IAssetProxyDispatcher as ContractArtifact,
IAuthorizable: IAuthorizable as ContractArtifact,
TestStaticCallTarget: TestStaticCallTarget as ContractArtifact,
};
3 changes: 3 additions & 0 deletions contracts/asset-proxy/src/wrappers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,11 @@ export * from '../generated-wrappers/erc20_proxy';
export * from '../generated-wrappers/erc721_proxy';
export * from '../generated-wrappers/i_asset_data';
export * from '../generated-wrappers/i_asset_proxy';
export * from '../generated-wrappers/i_asset_proxy_dispatcher';
export * from '../generated-wrappers/i_authorizable';
export * from '../generated-wrappers/mixin_asset_proxy_dispatcher';
export * from '../generated-wrappers/mixin_authorizable';
export * from '../generated-wrappers/multi_asset_proxy';
export * from '../generated-wrappers/ownable';
export * from '../generated-wrappers/static_call_proxy';
export * from '../generated-wrappers/test_static_call_target';
3 changes: 3 additions & 0 deletions contracts/asset-proxy/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,12 @@
"generated-artifacts/ERC721Proxy.json",
"generated-artifacts/IAssetData.json",
"generated-artifacts/IAssetProxy.json",
"generated-artifacts/IAssetProxyDispatcher.json",
"generated-artifacts/IAuthorizable.json",
"generated-artifacts/MixinAssetProxyDispatcher.json",
"generated-artifacts/MixinAuthorizable.json",
"generated-artifacts/MultiAssetProxy.json",
"generated-artifacts/Ownable.json",
"generated-artifacts/StaticCallProxy.json",
"generated-artifacts/TestStaticCallTarget.json"
],
Expand Down
3 changes: 1 addition & 2 deletions contracts/coordinator/compiler.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,5 @@
]
}
}
},
"contracts": ["src/Coordinator.sol", "src/registry/CoordinatorRegistry.sol"]
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,18 @@
pragma solidity ^0.5.9;
pragma experimental ABIEncoderV2;

import "@0x/contracts-exchange-libs/contracts/src/LibExchangeSelectors.sol";
import "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol";
import "@0x/contracts-exchange-libs/contracts/src/LibZeroExTransaction.sol";
import "@0x/contracts-utils/contracts/src/LibBytes.sol";
import "@0x/contracts-utils/contracts/src/LibAddressArray.sol";
import "@0x/contracts-exchange/contracts/src/interfaces/IExchange.sol";
import "./libs/LibCoordinatorApproval.sol";
import "./interfaces/ISignatureValidator.sol";
import "./interfaces/ICoordinatorApprovalVerifier.sol";


// solhint-disable avoid-tx-origin
contract MixinCoordinatorApprovalVerifier is
LibExchangeSelectors,
LibCoordinatorApproval,
LibZeroExTransaction,
ISignatureValidator,
Expand Down Expand Up @@ -84,9 +83,9 @@ contract MixinCoordinatorApprovalVerifier is
{
bytes4 selector = data.readBytes4(0);
if (
selector == FILL_ORDER_SELECTOR ||
selector == FILL_ORDER_NO_THROW_SELECTOR ||
selector == FILL_OR_KILL_ORDER_SELECTOR
selector == IExchange(address(0)).fillOrder.selector ||
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change is 🔥. I'm so glad we're getting rid of LibExchangeSelectors.

selector == IExchange(address(0)).fillOrderNoThrow.selector ||
selector == IExchange(address(0)).fillOrKillOrder.selector
) {
// Decode single order
(LibOrder.Order memory order) = abi.decode(
Expand All @@ -96,19 +95,19 @@ contract MixinCoordinatorApprovalVerifier is
orders = new LibOrder.Order[](1);
orders[0] = order;
} else if (
selector == BATCH_FILL_ORDERS_SELECTOR ||
selector == BATCH_FILL_ORDERS_NO_THROW_SELECTOR ||
selector == BATCH_FILL_OR_KILL_ORDERS_SELECTOR ||
selector == MARKET_BUY_ORDERS_SELECTOR ||
selector == MARKET_SELL_ORDERS_SELECTOR
selector == IExchange(address(0)).batchFillOrders.selector ||
selector == IExchange(address(0)).batchFillOrdersNoThrow.selector ||
selector == IExchange(address(0)).batchFillOrKillOrders.selector ||
selector == IExchange(address(0)).marketBuyOrders.selector ||
selector == IExchange(address(0)).marketSellOrders.selector
) {
// Decode all orders
// solhint-disable indent
(orders) = abi.decode(
data.slice(4, data.length),
(LibOrder.Order[])
);
} else if (selector == MATCH_ORDERS_SELECTOR) {
} else if (selector == IExchange(address(0)).matchOrders.selector) {
// Decode left and right orders
(LibOrder.Order memory leftOrder, LibOrder.Order memory rightOrder) = abi.decode(
data.slice(4, data.length),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ contract LibCoordinatorApproval is
// "uint256 approvalExpirationTimeSeconds",
// ")"
// ));
bytes32 constant internal EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH = 0x2fbcdbaa76bc7589916958ae919dfbef04d23f6bbf26de6ff317b32c6cc01e05;
bytes32 constant public EIP712_COORDINATOR_APPROVAL_SCHEMA_HASH = 0x2fbcdbaa76bc7589916958ae919dfbef04d23f6bbf26de6ff317b32c6cc01e05;

struct CoordinatorApproval {
address txOrigin; // Required signer of Ethereum transaction that is submitting approval.
Expand Down
2 changes: 1 addition & 1 deletion contracts/coordinator/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"scripts": {
"build": "yarn pre_build && tsc -b",
"build:ci": "yarn build",
"pre_build": "run-s compile generate_contract_wrappers",
"pre_build": "run-s compile contracts:gen generate_contract_wrappers",
"test": "yarn run_mocha",
"rebuild_and_test": "run-s build test",
"test:coverage": "SOLIDITY_COVERAGE=true run-s build run_mocha coverage:report:text coverage:report:lcov",
Expand Down
9 changes: 1 addition & 8 deletions contracts/dev-utils/compiler.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,5 @@
]
}
}
},
"contracts": [
"src/DevUtils.sol",
"src/EthBalanceChecker.sol",
"src/LibAssetData.sol",
"src/LibTransactionDecoder.sol",
"src/OrderTransferSimulationUtils.sol"
]
}
}
Loading