143 Commits

Author SHA1 Message Date
Amir Bandeali
e80abad19a Add batchExecuteTransaction 2019-07-23 15:18:26 -07:00
Amir Bandeali
c9c228ffdd Add return data to executeTransaction 2019-07-23 15:18:26 -07:00
Amir Bandeali
6fc30d31bf Fix missed conflicts and rebuild 2019-07-23 15:18:26 -07:00
Lawrence Forman
0bcd47b394 Add OrderValidator and WalletOrderValidator signature strategies to Exchange (#1774)
* In `@0x/contracts-exchange`: Add `SignatureType.OrderValidator` support to contracts and refactor signature validation functions.

* In `@0x/types`: Add `SignatureType.OrderValidator` and `RevertReason.InappropriateSignature`.

* In `@0x/contracts-exchange`: Fix contracts and update tests for `SignatureType.OrderValidator`.

* Ran prettier/linter

* Update changelogs

* In `@0x/order-utils`: Add `SignatureOrderValidatorError` to `ExchangeRevertErrors`.

* In `@0x/contracts-exchange`: Add `SignatureOrderValidatorError` rich revert. Fix rebase issues. Rename `IValidator.isValidOrder` to `IValidator.isValidOrderSignature`.

* In `@0x/contracts-exchange`: Add revert test cases for `OrderValidator` signature type.

* In `@0x/order-utils`: Update changelog.

* In `@0x/contracts-exchange`: Split off `SignatureType.OrderValidator` scheme into its own interface and registry.

* In `@0x/types`: Add `SignatureType.WalletOrderValidator`.

* In `@0x/order-utils`: Add `SignatureWalletOrderValidatorError`.

* In `@0x/contracts-exchange`: Add `SignatureType.WalletOrderValidator` support.

* Ran prettier

* In `@0x/types`: Remove `RevertReason.WalletOrderValidator`.

* Update/fix changelogs in `@0x/contracts-exchange`, `@0x/order-utils`, and `@0x/types`.

* In `@0x/contracts-exchange`: Make `isValidOrderSignature` `external` instead of `public`.

* In `@0x/contracts-exchange`: Change `isValidOrderSignature` back to `public` because passing `calldata` to internal functions isn't supported.
2019-07-23 15:18:26 -07:00
Lawrence Forman
c24bb139dd In @0x/contracts-exchange: Change validator/wallet return value test to == 1 instead of != 0. 2019-07-23 15:17:57 -07:00
Lawrence Forman
eb00ff05a8 Ran prettier/linter 2019-07-23 15:17:57 -07:00
Lawrence Forman
a7fe47f295 In @0x/contracts-exchange: Add SignatureWalletError and SignatureValidatorError rich reverts.
In `@0x/contracts-exchange`: Change `AssetProxyTransferError` to accept a `revertData` bytes instead of a `revertReason` string.
In `@0x/contracts-exchange`: Aadd `contracts/test/TestRevertReceiver.sol` for testing that validator/wallet reverts are properly wrapped.
2019-07-23 15:17:57 -07:00
Amir Bandeali
1b2ff1f9ae Update contracts/exchange/contracts/src/MixinSignatureValidator.sol
Co-Authored-By: dorothy-zbornak <lawrence@0xproject.com>
2019-07-23 15:17:57 -07:00
Lawrence Forman
7de9a36d01 In @0x/contracts-exchange: Fix comments in MixinSignatureValidator.sol. 2019-07-23 15:17:57 -07:00
Lawrence Forman
cfa8796b18 In @0x/contracts-exchange: Fix line count linter error. 2019-07-23 15:17:57 -07:00
Lawrence Forman
3c88ede02c In @0x/order-utils: Add TransactionSignatureError to ExchangeRevertErrors.
In `@0x/contracts-exchange`: Add `TransactionSignatureError`, supplanting `TransactionErrorCodes.BAD_SIGNATURE`, and associated test.
2019-07-23 15:17:57 -07:00
Lawrence Forman
a0223835b8 In @0x/order-utils: Add signerAddress and signature to ExchangeRevertErrors.SignatureError.
In `@0x/contracts-exchange`: Add `signerAddress` and `signature` to `SignatureError` reverts.
2019-07-23 15:17:56 -07:00
Lawrence Forman
ac18359410 Switch order of parameters in some rich reverts for easier dirty parsing. 2019-07-23 15:17:56 -07:00
Lawrence Forman
8194e3d3c5 In @0x/contracts-exchange: More efficient revert string extraction in MixinAssetProxyDispatcher.sol 2019-07-23 15:17:56 -07:00
Lawrence Forman
5781ab5436 Add PRs to changelogs 2019-07-23 15:17:56 -07:00
Lawrence Forman
233336ea16 Ran prettier and linter 2019-07-23 15:17:56 -07:00
Lawrence Forman
20d8c1b51a In @0x/contracts-exchange: Update tests for rich reverts 2019-07-23 15:17:56 -07:00
Lawrence Forman
4408604c2d In @0x/contracts-exchange: upgrading tests... 2019-07-23 15:17:56 -07:00
Lawrence Forman
15db5c8059 In @0x/contracts-exchange: Fix busted TestAssetProxyDispatcher.sol 2019-07-23 15:17:56 -07:00
Lawrence Forman
c36dff6354 In @0x/contracts-exchange: Fix dispatchTransferFrom so it preserves the assetData. 2019-07-23 15:17:56 -07:00
Lawrence Forman
3a6664282c In @0x/contracts-exchange: fix contract bugs introduced by changes 2019-07-23 15:16:49 -07:00
Lawrence Forman
5b25eb4fbd Fix linter errors. 2019-07-23 15:15:17 -07:00
Lawrence Forman
e8ecbe32ca Convert exchange MixinWrapperFunctions to use rich reverts 2019-07-23 15:10:31 -07:00
Lawrence Forman
bc5c5050fb Convert MixinTransactions to use rich reverts 2019-07-23 15:10:31 -07:00
Lawrence Forman
8a9b9c55ce Convert MixinSignatureValidator to use rich reverts 2019-07-23 15:10:31 -07:00
Lawrence Forman
d40f343d2a Convert MixinMatchOrders to use rich reverts 2019-07-23 15:10:31 -07:00
Lawrence Forman
4954d0a018 Convert MixinExchangeCore to use rich errors. 2019-07-23 15:10:31 -07:00
Lawrence Forman
7232bef07b Change LibRichErrors to just RichErrors.
Fix compilation issues in `exchange`.
2019-07-23 15:10:31 -07:00
Lawrence Forman
7277fb3d93 Convert to use rich reverts 2019-07-23 15:10:31 -07:00
Lawrence Forman
34e0345b29 Reimplementing rich reverts in the contracts. 2019-07-23 15:10:31 -07:00
Amir Bandeali
f094e9118c Fix inconsistent pragma for ABIEncoderV2 2019-07-23 15:10:31 -07:00
Amir Bandeali
63e93d9253 Update CHANGELOGs 2019-07-23 15:10:31 -07:00
Amir Bandeali
e0d6a3fd1d Refactor executeTransaction to take ZeroExTransaction struct as input 2019-07-23 15:09:46 -07:00
Amir Bandeali
308ff15adc Refactor EIP712 libraries 2019-07-23 15:09:46 -07:00
Lawrence Forman
c195629a77 Update changelogs. 2019-07-23 15:08:58 -07:00
Lawrence Forman
0b38289703 Ran prettier 2019-07-23 15:08:30 -07:00
Lawrence Forman
041bf9b54e Rename orderWithoutExchangeAddress -> orderWithoutDomain in contracts/exchange tests. 2019-07-23 15:08:30 -07:00
Lawrence Forman
b8f056b82f Update coordinator, exchange-forwarder, exchange-libs, exchange, and extensions contract tests to use new order and transaction structure 2019-07-23 15:08:00 -07:00
Lawrence Forman
e5fed57b8b Make contracts/exchange-libs/.../LibEIP712.sol stateless 2019-07-23 15:04:46 -07:00
Lawrence Forman
2524e7eea3 Update changelogs 2019-07-23 15:04:46 -07:00
Lawrence Forman
77ed54f64d Ran prettier 2019-07-23 14:58:00 -07:00
Lawrence Forman
bd06c7b343 Remove lingering invalid calls to OrderStateUtils() 2019-07-23 14:58:00 -07:00
Lawrence Forman
c096eae644 All glory to the linter gods. 2019-07-23 14:58:00 -07:00
Lawrence Forman
2d28fde24d Migrate all contract-related tooling and tests to accept a chain ID in domain separators. 2019-07-23 14:58:00 -07:00
Lawrence Forman
74a9a13564 Unpin @0x/contracts-exchange dependency in /contracts/coordinator.
Split up EIP712 constants and functionality in `/contracts/exchange-libs` across 3, modular contracts.
Make coordinator inherit from the modular EIP712 contracts in `@0x\contracts-exchange`.
2019-07-23 14:58:00 -07:00
Lawrence Forman
7aaef5d807 Fix missing comma in LibEIP712.sol domain schema.
Add `chainId` to constructors for all test contracts deriving from `LibEIP712.sol`
2019-07-23 14:58:00 -07:00
Lawrence Forman
64b4158bad Refactor EIP712 contracts to reduce code duplication. 2019-07-23 14:58:00 -07:00
Lawrence Forman
964d8171dd Update exchange and coordinator contracts to incorporate chainID in their domain separators. 2019-07-23 14:58:00 -07:00
Lawrence Forman
5b1cbbf157 Fix merge artifact in contracts/exchange/CHANGELOG.json.
Correct changelog for `contracts/exchange-forwarder` after rebase.
2019-07-23 14:58:00 -07:00
Lawrence Forman
db4c29a73c Apply and mask to assembly address instruction in exchange/.../ReentrantERC20Token.sol 2019-07-23 14:58:00 -07:00