mzhu25
c1177416f5
[Final] ERC721 and ERC1155 Orders (#429)
* add LibERC721Order.sol
* Add ERC721 interface to vendor/
* Add ERC721OrdersFeature interface
* Storage lib for ERC721 orders feature
* Implement basic functionality for ERC721 orders (buy, sell, cancel, etc)
* Add isValidERC721OrderSignature to interface
* implement onERC721Received
* Implement batchBuyERC721s
* left/right orders -> sell/buy orders
* Add missing @return comments
* Implement matching functions
* Use SafeMath where necessary
* add rich errors for ERC721OrdersFeature
* Add comments
* Add presign support for ERC721 orders
* Cancel using just the order nonce
* Add IERC721OrdersFeature to IZeroEx
* Add taker callback
* Assembly optimizations in LibERC721Order
* Add ERC721Orders TS class
* create zero-ex/contracts/test/integration/ and tokens/ directories
* TestMintableERC721Token
* tmp
* address feedback from original PR (#391)
* address feedback from original PR
* Update contracts/zero-ex/contracts/src/features/ERC721OrdersFeature.sol
Co-authored-by: Kim Persson <kimpers@users.noreply.github.com>
* address review feedback and improve order parameter naming
* Add batchCancel function
* Emit order fields in preSign
* Fix tests
Co-authored-by: Lawrence Forman <me@merklejerk.com>
Co-authored-by: Kim Persson <kimpers@users.noreply.github.com>
Co-authored-by: Michael Zhu <mchl.zhu.96@gmail.com>
* Remove revertIfIncomplete from batchMatch
* Sanity check maker address in preSign
* ERC1155OrdersFeature contracts
* Commence refactor, abstract base contract
* ERC721OrdersFeature inherits from NFTOrders
* Refactor ERC1155OrdersFeature to inherit from NFTOrders
* Fix order hashing
* Fix ERC721OrdersFeature tests
* Typos
* Remove maker address from preSigned mapping
* disable dex sampler tests
* Refactor TS tooling
* Address PR feedback
* Rearrange event fields to better align with struct fields
* Update comments
* update AbiEncoder.create params
* Add ERC1155Order to protocol-utils
* Add ERC1155OrdersFeeature tests
* Bump package versions and regenerate contract wrappers
* Add ERC165Feature
* NFT orders: address audit findings (#417)
* CVF-1: use pragma solidity ^0.6 instead of ^0.6.5
* CVF-11: fix inaccurate comment
* CVF-16: Enable taker callbacks for batchBuyERC1155s
* CVF-17: use internal call if revertIfIncomplete is true
* CVF-21: avoid duplicate SLOAD
* CVF-23: merge if statements
* CVF-24: Reorder status checks to be consistent with ERC721OrdersFeature
* CVF-25: Update unclear comment (canonical hash -> EIP-712 hash)
* CVF-31: Document keys of orderState mapping
* CVF-45: DRY up fees/properties hashing
* CVF-47, CVF-50, CVF-57: calculate properties.length once; hash propertyStructHashArray in-place using assembly
* CVF-56: More descriptive names for assembly variables
* CVF-71: Update confusing comment about rounding in _payFees
* CVF-72: Move ETH assertions outside of loop in _payFees
* CVF-74: Move property validation loop to else branch
* CVF-82: Update inaccurate comment
* CVF-86: Enable taker callbacks for batchBuyERC721s
* CVF-87: use internal call if revertIfIncomplete is true
* CVF-89: Perform token mismatch checks before stateful operations
* CVF-90, CVF-91: Defer ERC20 token mismatch check
* CVF-93: Add inline comments for _payFees parameters in matchERC721Orders
* CVF-94: Fix comment (Step 7 -> Step 5)
* CVF-98: Use binary & operator instead of mod
* CVF-99: Update unclear comment (canonical hash -> EIP-712 hash)
* CVF-65, CVF-66, CVF-67: Copy params.ethAvailable into local variable; check that ethSpent does not exceed ethAvailable; remove ethAvailable < erc20FillAmount check
* CVF-52, CVF-55, CVF-59: calculate fees.length once; hash feeStructHashArray in-place using assembly
* CVF-14, CVF-32: OrderState struct; separate storage mapping for 1155 cancellations so orders can be cancelled by nonce
* Update changelogs, IZeroEx artifact/wrapper
Co-authored-by: Lawrence Forman <lawrence@0xproject.com>
Co-authored-by: Lawrence Forman <me@merklejerk.com>
Co-authored-by: Kim Persson <kimpers@users.noreply.github.com>
2022-02-22 10:00:22 -08:00
..
2021-09-29 12:37:42 -04:00
2022-02-04 10:37:38 +10:00
2021-12-01 17:10:22 +01:00
2021-06-24 11:58:05 -07:00
2022-02-22 10:00:22 -08:00
2022-02-04 10:37:38 +10:00
2019-07-11 15:15:09 -07:00
2021-11-30 09:06:05 +10:00
2021-08-19 15:21:23 +10:00
2021-06-29 09:46:17 -07:00
2021-11-09 13:05:01 -06:00
2021-11-09 13:05:01 -06:00
2021-09-29 12:37:42 -04:00
2020-09-16 19:18:13 -04:00
2021-12-01 17:10:22 +01:00