{"action":"created","issue":{"url":"https://api.github.com/repos/ProjectWyvern/wyvern-ethereum/issues/9","repository_url":"https://api.github.com/repos/ProjectWyvern/wyvern-ethereum","labels_url":"https://api.github.com/repos/ProjectWyvern/wyvern-ethereum/issues/9/labels{/name}","comments_url":"https://api.github.com/repos/ProjectWyvern/wyvern-ethereum/issues/9/comments","events_url":"https://api.github.com/repos/ProjectWyvern/wyvern-ethereum/issues/9/events","html_url":"https://github.com/ProjectWyvern/wyvern-ethereum/issues/9","id":302141626,"number":9,"title":"Manually pack Order struct to bytes to avoid unnecessary keccak256","user":{"login":"protinam","id":26913811,"avatar_url":"https://avatars0.githubusercontent.com/u/26913811?v=4","gravatar_id":"","url":"https://api.github.com/users/protinam","html_url":"https://github.com/protinam","followers_url":"https://api.github.com/users/protinam/followers","following_url":"https://api.github.com/users/protinam/following{/other_user}","gists_url":"https://api.github.com/users/protinam/gists{/gist_id}","starred_url":"https://api.github.com/users/protinam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/protinam/subscriptions","organizations_url":"https://api.github.com/users/protinam/orgs","repos_url":"https://api.github.com/users/protinam/repos","events_url":"https://api.github.com/users/protinam/events{/privacy}","received_events_url":"https://api.github.com/users/protinam/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":13,"created_at":"2018-03-05T00:57:47Z","updated_at":"2018-03-14T23:48:35Z","closed_at":null,"author_association":"OWNER","body":"Due to Solidity stack size limitations, the current order hashing implementation ([here](https://github.com/ProjectWyvern/wyvern-ethereum/blob/master/contracts/exchange/ExchangeCore.sol#L235)) must hash orders in two parts. This is a waste of gas. Instead, manually \"tightly pack\" the Order struct into bytes following the Solidity tight-packing convention (see [here](http://solidity.readthedocs.io/en/develop/abi-spec.html#abi-packed-mode)), which should result in one fewer calls to the `keccak256` builtin. Other ways of getting around Solidity's stack size limitation may be candidate solutions as long as they still decrease gas costs.\r\n\r\nMay be rendered easier by [this Solidity PR](https://github.com/ethereum/solidity/pull/2980), but I do not know what the timetable for that is."},"comment":{"url":"https://api.github.com/repos/ProjectWyvern/wyvern-ethereum/issues/comments/373212564","html_url":"https://github.com/ProjectWyvern/wyvern-ethereum/issues/9#issuecomment-373212564","issue_url":"https://api.github.com/repos/ProjectWyvern/wyvern-ethereum/issues/9","id":373212564,"user":{"login":"protinam","id":26913811,"avatar_url":"https://avatars0.githubusercontent.com/u/26913811?v=4","gravatar_id":"","url":"https://api.github.com/users/protinam","html_url":"https://github.com/protinam","followers_url":"https://api.github.com/users/protinam/followers","following_url":"https://api.github.com/users/protinam/following{/other_user}","gists_url":"https://api.github.com/users/protinam/gists{/gist_id}","starred_url":"https://api.github.com/users/protinam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/protinam/subscriptions","organizations_url":"https://api.github.com/users/protinam/orgs","repos_url":"https://api.github.com/users/protinam/repos","events_url":"https://api.github.com/users/protinam/events{/privacy}","received_events_url":"https://api.github.com/users/protinam/received_events","type":"User","site_admin":false},"created_at":"2018-03-14T23:48:35Z","updated_at":"2018-03-14T23:48:35Z","author_association":"OWNER","body":"Hi @jayendra13 - this is on a bit of a deadline, are you still interested in working on this?"}}
{"actor":{"display_login":"protinam"}}