{"action":"created","issue":{"url":"https://api.github.com/repos/0xProject/0x-monorepo/issues/458","repository_url":"https://api.github.com/repos/0xProject/0x-monorepo","labels_url":"https://api.github.com/repos/0xProject/0x-monorepo/issues/458/labels{/name}","comments_url":"https://api.github.com/repos/0xProject/0x-monorepo/issues/458/comments","events_url":"https://api.github.com/repos/0xProject/0x-monorepo/issues/458/events","html_url":"https://github.com/0xProject/0x-monorepo/pull/458","id":305721939,"number":458,"title":"Cancel maker's orders before a certain time (Revised)","user":{"login":"hysz","id":4369805,"avatar_url":"https://avatars0.githubusercontent.com/u/4369805?v=4","gravatar_id":"","url":"https://api.github.com/users/hysz","html_url":"https://github.com/hysz","followers_url":"https://api.github.com/users/hysz/followers","following_url":"https://api.github.com/users/hysz/following{/other_user}","gists_url":"https://api.github.com/users/hysz/gists{/gist_id}","starred_url":"https://api.github.com/users/hysz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hysz/subscriptions","organizations_url":"https://api.github.com/users/hysz/orgs","repos_url":"https://api.github.com/users/hysz/repos","events_url":"https://api.github.com/users/hysz/events{/privacy}","received_events_url":"https://api.github.com/users/hysz/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-03-15T21:14:17Z","updated_at":"2018-03-15T21:15:13Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/0xProject/0x-monorepo/pulls/458","html_url":"https://github.com/0xProject/0x-monorepo/pull/458","diff_url":"https://github.com/0xProject/0x-monorepo/pull/458.diff","patch_url":"https://github.com/0xProject/0x-monorepo/pull/458.patch"},"body":"Implementation and tests in the protocol for cancelling all of a maker's orders before a certain time.\r\n\r\n<!--- Thank you for taking the time to submit a Pull Request -->\r\n\r\n<!--- Provide a general summary of the issue in the Title above -->\r\n\r\n## Description\r\n\r\nA change to the protocol which allows makers to cancel all of their orders up to a specific time.\r\n\r\nZEIP: https://github.com/0xProject/ZEIPs/issues/20\r\n\r\n<!--- Describe your changes in detail -->\r\n\r\n## Motivation and Context\r\n\r\nThe existing batchCancelOrders is granular but expensive. This change introduces a very inexpensive strategy for cancelling all orders that were created before a specific time. Makers are able to timestamp their orders by overloading the salt value. Timestamps follow minimal specs; for example, a specific unit of time is not enforced.\r\n\r\nWe detect the salt value has been overloaded as a timestamp when the \"cancelOrdersBefore\" is called. Since timestamps and salts serve similar purposes, only one should be necessary. There is probably a better / more explicit way to do this, which will be explored after benchmarking and feedback from relayers.\r\n\r\n<!--- Why is this change required? What problem does it solve? -->\r\n\r\n<!--- If it fixes an open issue, please link to the issue here. -->\r\n\r\n## How Has This Been Tested?\r\n\r\nRun `yarn test` in the `packages/contracts` directory.\r\n\r\n<!--- Please describe in detail how you tested your changes. -->\r\n\r\n<!--- Include details of your testing environment, and the tests you ran to -->\r\n\r\n<!--- see how your change affects other areas of the code, etc. -->\r\n\r\n## Types of changes\r\n\r\n<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n\r\n* [ ] Bug fix (non-breaking change which fixes an issue)\r\n* [x] New feature (non-breaking change which adds functionality)\r\n* [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n\r\n## Checklist:\r\n\r\n<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n\r\n<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->\r\n\r\n* [x] Change requires a change to the documentation.\r\n* [x] Added tests to cover my changes.\r\n* [ ] Added new entries to the relevant CHANGELOGs.\r\n* [ ] Updated the new versions of the changed packages in the relevant CHANGELOGs.\r\n* [ ] Labeled this PR with the 'WIP' label if it is a work in progress.\r\n* [ ] Labeled this PR with the labels corresponding to the changed package.\r\n"},"comment":{"url":"https://api.github.com/repos/0xProject/0x-monorepo/issues/comments/373525255","html_url":"https://github.com/0xProject/0x-monorepo/pull/458#issuecomment-373525255","issue_url":"https://api.github.com/repos/0xProject/0x-monorepo/issues/458","id":373525255,"user":{"login":"hysz","id":4369805,"avatar_url":"https://avatars0.githubusercontent.com/u/4369805?v=4","gravatar_id":"","url":"https://api.github.com/users/hysz","html_url":"https://github.com/hysz","followers_url":"https://api.github.com/users/hysz/followers","following_url":"https://api.github.com/users/hysz/following{/other_user}","gists_url":"https://api.github.com/users/hysz/gists{/gist_id}","starred_url":"https://api.github.com/users/hysz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hysz/subscriptions","organizations_url":"https://api.github.com/users/hysz/orgs","repos_url":"https://api.github.com/users/hysz/repos","events_url":"https://api.github.com/users/hysz/events{/privacy}","received_events_url":"https://api.github.com/users/hysz/received_events","type":"User","site_admin":false},"created_at":"2018-03-15T21:15:13Z","updated_at":"2018-03-15T21:15:13Z","author_association":"NONE","body":"@abandeali1  @fabioberger - All issues from the previous PR should be addressed in this one."}}
{"actor":{"display_login":"hysz"}}