Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mixed assets in "market" operations. #59

Closed
dorothy-zbornak opened this issue Oct 23, 2019 · 0 comments
Closed

Mixed assets in "market" operations. #59

dorothy-zbornak opened this issue Oct 23, 2019 · 0 comments
Labels
status: implemented Proposed changes have been implemented (and deployed, if smart contract) type: core

Comments

@dorothy-zbornak
Copy link

Summary

Remove the restriction of all orders sharing the same maker or taker asset data in marketBuy...() and marketSell...() functions.

Motivation

The V3 world is evolving into one where the same asset can be represented by different asset data encodings. A good example would be with the new Bridge (#47) proxies, which can exchange any ERC20 token but can also carry arbitrary payloads in its asset data.

Specification

In V2, we copied the makerAssetData (in the case of a marketBuy...()) or the takerAssetData (in the case of marketSell...()) to each subsequent order passed into the market functions. This essentially enforced homogenous asset types across all orders.

Going forward, we will simply no longer perform this copy, and fill orders as usual, continuing
to track and assert the maker/taker asset amounts bought/sold.

Rationale

Because we no longer enforce homogenous asset types, this places more burden on the taker/interface to ensure that orders are, indeed, compatible or desirable.

@dekz dekz mentioned this issue Oct 24, 2019
@mintcloud mintcloud added status: implemented Proposed changes have been implemented (and deployed, if smart contract) type: core and removed 3.0 labels Apr 10, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status: implemented Proposed changes have been implemented (and deployed, if smart contract) type: core
Projects
None yet
Development

No branches or pull requests

2 participants