{"action":"created","comment":{"url":"https://api.github.com/repos/0xProject/0x-monorepo/pulls/comments/229765618","pull_request_review_id":170343108,"id":229765618,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyOTc2NTYxOA==","diff_hunk":"@@ -20,13 +21,12 @@ export interface BuyOrderStateButtonProps {\n     onValidationPending: (buyQuote: BuyQuote) => void;\n     onValidationFail: (buyQuote: BuyQuote, errorMessage: AssetBuyerError | ZeroExInstantError) => void;\n     onSignatureDenied: (buyQuote: BuyQuote) => void;\n-    onBuyProcessing: (buyQuote: BuyQuote, txHash: string) => void;\n-    onBuySuccess: (buyQuote: BuyQuote, txHash: string) => void;\n-    onBuyFailure: (buyQuote: BuyQuote, txHash: string) => void;\n+    onBuyProcessing: (buyQuote: BuyQuote, txHash: string, startTimeUnix: number, expectedEndTimeUnix: number) => void;\n+    onBuySuccess: (buyQuote: BuyQuote, txHash: string, startTimeUnix: number, expectedEndTimeUnix: number) => void;","path":"packages/instant/src/components/buy_order_state_buttons.tsx","position":null,"original_position":16,"commit_id":"d6755472087af76982779728db7424b1171a1b47","original_commit_id":"0e1e9b27f6f5b93e1f9b0e2833bc600836f8e757","user":{"login":"steveklebanoff","id":210914,"node_id":"MDQ6VXNlcjIxMDkxNA==","avatar_url":"https://avatars3.githubusercontent.com/u/210914?v=4","gravatar_id":"","url":"https://api.github.com/users/steveklebanoff","html_url":"https://github.com/steveklebanoff","followers_url":"https://api.github.com/users/steveklebanoff/followers","following_url":"https://api.github.com/users/steveklebanoff/following{/other_user}","gists_url":"https://api.github.com/users/steveklebanoff/gists{/gist_id}","starred_url":"https://api.github.com/users/steveklebanoff/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/steveklebanoff/subscriptions","organizations_url":"https://api.github.com/users/steveklebanoff/orgs","repos_url":"https://api.github.com/users/steveklebanoff/repos","events_url":"https://api.github.com/users/steveklebanoff/events{/privacy}","received_events_url":"https://api.github.com/users/steveklebanoff/received_events","type":"User","site_admin":false},"body":"Done, see d675547","created_at":"2018-10-31T16:15:45Z","updated_at":"2018-10-31T16:15:45Z","html_url":"https://github.com/0xProject/0x-monorepo/pull/1200#discussion_r229765618","pull_request_url":"https://api.github.com/repos/0xProject/0x-monorepo/pulls/1200","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/0xProject/0x-monorepo/pulls/comments/229765618"},"html":{"href":"https://github.com/0xProject/0x-monorepo/pull/1200#discussion_r229765618"},"pull_request":{"href":"https://api.github.com/repos/0xProject/0x-monorepo/pulls/1200"}},"in_reply_to_id":229547888},"pull_request":{"url":"https://api.github.com/repos/0xProject/0x-monorepo/pulls/1200","id":227118469,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI3MTE4NDY5","html_url":"https://github.com/0xProject/0x-monorepo/pull/1200","diff_url":"https://github.com/0xProject/0x-monorepo/pull/1200.diff","patch_url":"https://github.com/0xProject/0x-monorepo/pull/1200.patch","issue_url":"https://api.github.com/repos/0xProject/0x-monorepo/issues/1200","number":1200,"state":"open","locked":false,"title":"WIP: Progress Bar","user":{"login":"steveklebanoff","id":210914,"node_id":"MDQ6VXNlcjIxMDkxNA==","avatar_url":"https://avatars3.githubusercontent.com/u/210914?v=4","gravatar_id":"","url":"https://api.github.com/users/steveklebanoff","html_url":"https://github.com/steveklebanoff","followers_url":"https://api.github.com/users/steveklebanoff/followers","following_url":"https://api.github.com/users/steveklebanoff/following{/other_user}","gists_url":"https://api.github.com/users/steveklebanoff/gists{/gist_id}","starred_url":"https://api.github.com/users/steveklebanoff/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/steveklebanoff/subscriptions","organizations_url":"https://api.github.com/users/steveklebanoff/orgs","repos_url":"https://api.github.com/users/steveklebanoff/repos","events_url":"https://api.github.com/users/steveklebanoff/events{/privacy}","received_events_url":"https://api.github.com/users/steveklebanoff/received_events","type":"User","site_admin":false},"body":"## Description\r\n\r\nThis is still quite a WIP.  There's a lot of TODOs, so not the time for a full review, but would like a look at the overall architecture.\r\n\r\nAt a high level, this associates a `SimulatedProgress` object with the `OrderState`.  This keeps track of when we started the txn and when we expect to finish the txn.  Then, the `SimulatedProgressBar` uses this information to figure out how to display the progress bar, including speeding up to finish when the process is done regardless of what the estimated wait time was.\r\n\r\nI tried a few different approaches before landing on this one, including storing the `percentDone` on the redux state, but it wasn't feeling good because it was cluttering up and spamming redux events.  Although the code could go for some renaming/clean up, I feel pretty satisfied with the architecture of just storing the `startTime` and `expectedEndTime` on the redux store, and letting `SimulatedProgressBar` keep track of the % to display internally within it's own state.  I'm open to feedback though!\r\n\r\nLots of TODOs throughout the code, including but not limited to:\r\n- [ ] Tweak speed values\r\n- [ ] Tokens show as received while the progress bar is speeding up to success, this is kind of weird, see if we can resolve\r\n- [ ] We should be able to get rid of the \"finished\" progress variable, and just get that from the buyOrderState\r\n- [x] We need to nicely format the \"Estimated Wait Time\" and the \"Elapsed Time\" to show a friendly time (convert to minutes when > 60 seconds)\r\n\r\n## Testing instructions\r\n\r\n<!--- Please describe how reviewers can test your changes -->\r\n\r\n## Types of changes\r\n\r\n<!--- What types of changes does your code introduce? Uncomment all the bullets that apply: -->\r\n\r\n<!-- * Bug fix (non-breaking change which fixes an issue) -->\r\n\r\n<!-- * New feature (non-breaking change which adds functionality) -->\r\n\r\n<!-- * Breaking change (fix or feature that would cause existing functionality to change) -->\r\n\r\n## Checklist:\r\n\r\n<!--- The following points should be used to indicate the progress of your PR.  Put an `x` in all the boxes that apply right now, and come back over time and check them off as you make progress.  If you're unsure about any of these, don't hesitate to ask. We're here to help! -->\r\n\r\n*   [ ] Prefix PR title with `[WIP]` if necessary.\r\n*   [ ] Prefix PR title with bracketed package name(s) corresponding to the changed package(s). For example: `[sol-cov] Fixed bug`.\r\n*   [ ] Add tests to cover changes as needed.\r\n*   [ ] Update documentation as needed.\r\n*   [ ] Add new entries to the relevant CHANGELOG.jsons.\r\n","created_at":"2018-10-30T23:55:29Z","updated_at":"2018-10-31T16:15:45Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c4db50982e6d827581b1cd50ef8f63aeddc6da5a","assignee":null,"assignees":[],"requested_reviewers":[{"login":"fragosti","id":3066135,"node_id":"MDQ6VXNlcjMwNjYxMzU=","avatar_url":"https://avatars1.githubusercontent.com/u/3066135?v=4","gravatar_id":"","url":"https://api.github.com/users/fragosti","html_url":"https://github.com/fragosti","followers_url":"https://api.github.com/users/fragosti/followers","following_url":"https://api.github.com/users/fragosti/following{/other_user}","gists_url":"https://api.github.com/users/fragosti/gists{/gist_id}","starred_url":"https://api.github.com/users/fragosti/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fragosti/subscriptions","organizations_url":"https://api.github.com/users/fragosti/orgs","repos_url":"https://api.github.com/users/fragosti/repos","events_url":"https://api.github.com/users/fragosti/events{/privacy}","received_events_url":"https://api.github.com/users/fragosti/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":639459897,"node_id":"MDU6TGFiZWw2Mzk0NTk4OTc=","url":"https://api.github.com/repos/0xProject/0x-monorepo/labels/WIP","name":"WIP","color":"d4c5f9","default":false},{"id":1077385218,"node_id":"MDU6TGFiZWwxMDc3Mzg1MjE4","url":"https://api.github.com/repos/0xProject/0x-monorepo/labels/instant","name":"instant","color":"512D80","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/0xProject/0x-monorepo/pulls/1200/commits","review_comments_url":"https://api.github.com/repos/0xProject/0x-monorepo/pulls/1200/comments","review_comment_url":"https://api.github.com/repos/0xProject/0x-monorepo/pulls/comments{/number}","comments_url":"https://api.github.com/repos/0xProject/0x-monorepo/issues/1200/comments","statuses_url":"https://api.github.com/repos/0xProject/0x-monorepo/statuses/d6755472087af76982779728db7424b1171a1b47","head":{"label":"0xProject:feature/instant/simulated-progress-bar","ref":"feature/instant/simulated-progress-bar","sha":"d6755472087af76982779728db7424b1171a1b47","user":{"login":"0xProject","id":24832717,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI0ODMyNzE3","avatar_url":"https://avatars2.githubusercontent.com/u/24832717?v=4","gravatar_id":"","url":"https://api.github.com/users/0xProject","html_url":"https://github.com/0xProject","followers_url":"https://api.github.com/users/0xProject/followers","following_url":"https://api.github.com/users/0xProject/following{/other_user}","gists_url":"https://api.github.com/users/0xProject/gists{/gist_id}","starred_url":"https://api.github.com/users/0xProject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/0xProject/subscriptions","organizations_url":"https://api.github.com/users/0xProject/orgs","repos_url":"https://api.github.com/users/0xProject/repos","events_url":"https://api.github.com/users/0xProject/events{/privacy}","received_events_url":"https://api.github.com/users/0xProject/received_events","type":"Organization","site_admin":false},"repo":{"id":92181371,"node_id":"MDEwOlJlcG9zaXRvcnk5MjE4MTM3MQ==","name":"0x-monorepo","full_name":"0xProject/0x-monorepo","private":false,"owner":{"login":"0xProject","id":24832717,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI0ODMyNzE3","avatar_url":"https://avatars2.githubusercontent.com/u/24832717?v=4","gravatar_id":"","url":"https://api.github.com/users/0xProject","html_url":"https://github.com/0xProject","followers_url":"https://api.github.com/users/0xProject/followers","following_url":"https://api.github.com/users/0xProject/following{/other_user}","gists_url":"https://api.github.com/users/0xProject/gists{/gist_id}","starred_url":"https://api.github.com/users/0xProject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/0xProject/subscriptions","organizations_url":"https://api.github.com/users/0xProject/orgs","repos_url":"https://api.github.com/users/0xProject/repos","events_url":"https://api.github.com/users/0xProject/events{/privacy}","received_events_url":"https://api.github.com/users/0xProject/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/0xProject/0x-monorepo","description":"0x protocol monorepo - includes our smart contracts and many developer tools","fork":false,"url":"https://api.github.com/repos/0xProject/0x-monorepo","forks_url":"https://api.github.com/repos/0xProject/0x-monorepo/forks","keys_url":"https://api.github.com/repos/0xProject/0x-monorepo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/0xProject/0x-monorepo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/0xProject/0x-monorepo/teams","hooks_url":"https://api.github.com/repos/0xProject/0x-monorepo/hooks","issue_events_url":"https://api.github.com/repos/0xProject/0x-monorepo/issues/events{/number}","events_url":"https://api.github.com/repos/0xProject/0x-monorepo/events","assignees_url":"https://api.github.com/repos/0xProject/0x-monorepo/assignees{/user}","branches_url":"https://api.github.com/repos/0xProject/0x-monorepo/branches{/branch}","tags_url":"https://api.github.com/repos/0xProject/0x-monorepo/tags","blobs_url":"https://api.github.com/repos/0xProject/0x-monorepo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/0xProject/0x-monorepo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/0xProject/0x-monorepo/git/refs{/sha}","trees_url":"https://api.github.com/repos/0xProject/0x-monorepo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/0xProject/0x-monorepo/statuses/{sha}","languages_url":"https://api.github.com/repos/0xProject/0x-monorepo/languages","stargazers_url":"https://api.github.com/repos/0xProject/0x-monorepo/stargazers","contributors_url":"https://api.github.com/repos/0xProject/0x-monorepo/contributors","subscribers_url":"https://api.github.com/repos/0xProject/0x-monorepo/subscribers","subscription_url":"https://api.github.com/repos/0xProject/0x-monorepo/subscription","commits_url":"https://api.github.com/repos/0xProject/0x-monorepo/commits{/sha}","git_commits_url":"https://api.github.com/repos/0xProject/0x-monorepo/git/commits{/sha}","comments_url":"https://api.github.com/repos/0xProject/0x-monorepo/comments{/number}","issue_comment_url":"https://api.github.com/repos/0xProject/0x-monorepo/issues/comments{/number}","contents_url":"https://api.github.com/repos/0xProject/0x-monorepo/contents/{+path}","compare_url":"https://api.github.com/repos/0xProject/0x-monorepo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/0xProject/0x-monorepo/merges","archive_url":"https://api.github.com/repos/0xProject/0x-monorepo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/0xProject/0x-monorepo/downloads","issues_url":"https://api.github.com/repos/0xProject/0x-monorepo/issues{/number}","pulls_url":"https://api.github.com/repos/0xProject/0x-monorepo/pulls{/number}","milestones_url":"https://api.github.com/repos/0xProject/0x-monorepo/milestones{/number}","notifications_url":"https://api.github.com/repos/0xProject/0x-monorepo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/0xProject/0x-monorepo/labels{/name}","releases_url":"https://api.github.com/repos/0xProject/0x-monorepo/releases{/id}","deployments_url":"https://api.github.com/repos/0xProject/0x-monorepo/deployments","created_at":"2017-05-23T14:17:33Z","updated_at":"2018-10-30T22:58:24Z","pushed_at":"2018-10-31T16:15:03Z","git_url":"git://github.com/0xProject/0x-monorepo.git","ssh_url":"git@github.com:0xProject/0x-monorepo.git","clone_url":"https://github.com/0xProject/0x-monorepo.git","svn_url":"https://github.com/0xProject/0x-monorepo","homepage":"","size":62013,"stargazers_count":862,"watchers_count":862,"language":"TypeScript","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":240,"mirror_url":null,"archived":false,"open_issues_count":61,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":240,"open_issues":61,"watchers":862,"default_branch":"development"}},"base":{"label":"0xProject:development","ref":"development","sha":"5d6fde356a19658ae91114df68fa507d93ff8049","user":{"login":"0xProject","id":24832717,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI0ODMyNzE3","avatar_url":"https://avatars2.githubusercontent.com/u/24832717?v=4","gravatar_id":"","url":"https://api.github.com/users/0xProject","html_url":"https://github.com/0xProject","followers_url":"https://api.github.com/users/0xProject/followers","following_url":"https://api.github.com/users/0xProject/following{/other_user}","gists_url":"https://api.github.com/users/0xProject/gists{/gist_id}","starred_url":"https://api.github.com/users/0xProject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/0xProject/subscriptions","organizations_url":"https://api.github.com/users/0xProject/orgs","repos_url":"https://api.github.com/users/0xProject/repos","events_url":"https://api.github.com/users/0xProject/events{/privacy}","received_events_url":"https://api.github.com/users/0xProject/received_events","type":"Organization","site_admin":false},"repo":{"id":92181371,"node_id":"MDEwOlJlcG9zaXRvcnk5MjE4MTM3MQ==","name":"0x-monorepo","full_name":"0xProject/0x-monorepo","private":false,"owner":{"login":"0xProject","id":24832717,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI0ODMyNzE3","avatar_url":"https://avatars2.githubusercontent.com/u/24832717?v=4","gravatar_id":"","url":"https://api.github.com/users/0xProject","html_url":"https://github.com/0xProject","followers_url":"https://api.github.com/users/0xProject/followers","following_url":"https://api.github.com/users/0xProject/following{/other_user}","gists_url":"https://api.github.com/users/0xProject/gists{/gist_id}","starred_url":"https://api.github.com/users/0xProject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/0xProject/subscriptions","organizations_url":"https://api.github.com/users/0xProject/orgs","repos_url":"https://api.github.com/users/0xProject/repos","events_url":"https://api.github.com/users/0xProject/events{/privacy}","received_events_url":"https://api.github.com/users/0xProject/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/0xProject/0x-monorepo","description":"0x protocol monorepo - includes our smart contracts and many developer tools","fork":false,"url":"https://api.github.com/repos/0xProject/0x-monorepo","forks_url":"https://api.github.com/repos/0xProject/0x-monorepo/forks","keys_url":"https://api.github.com/repos/0xProject/0x-monorepo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/0xProject/0x-monorepo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/0xProject/0x-monorepo/teams","hooks_url":"https://api.github.com/repos/0xProject/0x-monorepo/hooks","issue_events_url":"https://api.github.com/repos/0xProject/0x-monorepo/issues/events{/number}","events_url":"https://api.github.com/repos/0xProject/0x-monorepo/events","assignees_url":"https://api.github.com/repos/0xProject/0x-monorepo/assignees{/user}","branches_url":"https://api.github.com/repos/0xProject/0x-monorepo/branches{/branch}","tags_url":"https://api.github.com/repos/0xProject/0x-monorepo/tags","blobs_url":"https://api.github.com/repos/0xProject/0x-monorepo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/0xProject/0x-monorepo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/0xProject/0x-monorepo/git/refs{/sha}","trees_url":"https://api.github.com/repos/0xProject/0x-monorepo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/0xProject/0x-monorepo/statuses/{sha}","languages_url":"https://api.github.com/repos/0xProject/0x-monorepo/languages","stargazers_url":"https://api.github.com/repos/0xProject/0x-monorepo/stargazers","contributors_url":"https://api.github.com/repos/0xProject/0x-monorepo/contributors","subscribers_url":"https://api.github.com/repos/0xProject/0x-monorepo/subscribers","subscription_url":"https://api.github.com/repos/0xProject/0x-monorepo/subscription","commits_url":"https://api.github.com/repos/0xProject/0x-monorepo/commits{/sha}","git_commits_url":"https://api.github.com/repos/0xProject/0x-monorepo/git/commits{/sha}","comments_url":"https://api.github.com/repos/0xProject/0x-monorepo/comments{/number}","issue_comment_url":"https://api.github.com/repos/0xProject/0x-monorepo/issues/comments{/number}","contents_url":"https://api.github.com/repos/0xProject/0x-monorepo/contents/{+path}","compare_url":"https://api.github.com/repos/0xProject/0x-monorepo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/0xProject/0x-monorepo/merges","archive_url":"https://api.github.com/repos/0xProject/0x-monorepo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/0xProject/0x-monorepo/downloads","issues_url":"https://api.github.com/repos/0xProject/0x-monorepo/issues{/number}","pulls_url":"https://api.github.com/repos/0xProject/0x-monorepo/pulls{/number}","milestones_url":"https://api.github.com/repos/0xProject/0x-monorepo/milestones{/number}","notifications_url":"https://api.github.com/repos/0xProject/0x-monorepo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/0xProject/0x-monorepo/labels{/name}","releases_url":"https://api.github.com/repos/0xProject/0x-monorepo/releases{/id}","deployments_url":"https://api.github.com/repos/0xProject/0x-monorepo/deployments","created_at":"2017-05-23T14:17:33Z","updated_at":"2018-10-30T22:58:24Z","pushed_at":"2018-10-31T16:15:03Z","git_url":"git://github.com/0xProject/0x-monorepo.git","ssh_url":"git@github.com:0xProject/0x-monorepo.git","clone_url":"https://github.com/0xProject/0x-monorepo.git","svn_url":"https://github.com/0xProject/0x-monorepo","homepage":"","size":62013,"stargazers_count":862,"watchers_count":862,"language":"TypeScript","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":240,"mirror_url":null,"archived":false,"open_issues_count":61,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":240,"open_issues":61,"watchers":862,"default_branch":"development"}},"_links":{"self":{"href":"https://api.github.com/repos/0xProject/0x-monorepo/pulls/1200"},"html":{"href":"https://github.com/0xProject/0x-monorepo/pull/1200"},"issue":{"href":"https://api.github.com/repos/0xProject/0x-monorepo/issues/1200"},"comments":{"href":"https://api.github.com/repos/0xProject/0x-monorepo/issues/1200/comments"},"review_comments":{"href":"https://api.github.com/repos/0xProject/0x-monorepo/pulls/1200/comments"},"review_comment":{"href":"https://api.github.com/repos/0xProject/0x-monorepo/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/0xProject/0x-monorepo/pulls/1200/commits"},"statuses":{"href":"https://api.github.com/repos/0xProject/0x-monorepo/statuses/d6755472087af76982779728db7424b1171a1b47"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"steveklebanoff"}}