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

Permissive Order Cancellations #35

Closed
abandeali1 opened this issue May 2, 2019 · 0 comments
Closed

Permissive Order Cancellations #35

abandeali1 opened this issue May 2, 2019 · 0 comments
Labels
status: implemented Proposed changes have been implemented (and deployed, if smart contract) type: core

Comments

@abandeali1
Copy link
Member

abandeali1 commented May 2, 2019

Preamble

ZEIP: 35
Title: Permissive Order Cancellations
Author: 0x Core Team
Type: Standard Track
Category: Core
Status: Final
Created: 2019-10-29

Discussion: #35

Summary

The current batchCancelOrders function is difficult to use because the caller runs the risk of the entire transaction reverting if only a single cancellation fails. This is difficult to prevent because a cancellation may fail for non-deterministic reasons (such as the order being expired). This can be improved by doing a no-op instead of reverting for noncritical errors.

The proposed change would alter the logic of cancelOrder and batchCancelOrders, but would not affect the interface.

Motivation

This will improve the reliability of cancelling batches of specific orders.

Specification

The table below compares how failure scenarios are handled when cancelling an order.

Scenario Current Action Proposed Action
Reentrancy Revert Revert
Sender Not Authorized Revert Revert
Order Expired Revert No-op
Order Already Cancelled Revert No-op
Order Already Filled Revert No-op
Order Invalid Revert No-op

Copyright

Copyright and related rights waived via CC0.

@abandeali1 abandeali1 changed the title Add noThrow cancellation functions Add noThrow cancel functions May 2, 2019
@abandeali1 abandeali1 added 3.0 and removed 3.0 labels May 3, 2019
@dekz dekz modified the milestone: V3 development Jun 21, 2019
@dekz dekz mentioned this issue Oct 21, 2019
@hysz hysz mentioned this issue Nov 1, 2019
@hysz hysz changed the title Add noThrow cancel functions Permissive Order Cancellations Nov 1, 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

3 participants