{"action":"created","comment":{"url":"https://api.github.com/repos/0xProject/0x-monorepo/pulls/comments/226809391","pull_request_review_id":166730355,"id":226809391,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyNjgwOTM5MQ==","diff_hunk":"@@ -0,0 +1,53 @@\n+import { AssetProxyId, ObjectMap } from '@0x/types';\n+import * as _ from 'lodash';\n+\n+import { assetDataNetworkMapping } from '../data/asset_data_network_mapping';\n+import { Asset, AssetMetaData, Network, ZeroExInstantError } from '../types';\n+\n+export const assetUtils = {\n+    createAssetFromAssetData: (\n+        assetData: string,\n+        assetMetaDataMap: ObjectMap<AssetMetaData>,\n+        network: Network,\n+    ): Asset => {\n+        return {\n+            assetData,\n+            metaData: assetUtils.getMetaDataOrThrow(assetData, assetMetaDataMap, network),\n+        };\n+    },\n+    getMetaDataOrThrow: (assetData: string, metaDataMap: ObjectMap<AssetMetaData>, network: Network): AssetMetaData => {\n+        let mainnetAssetData: string | undefined = assetData;","path":"packages/instant/src/util/asset.ts","position":19,"original_position":19,"commit_id":"a017f5e38561a152e8a757b340c1b0c6b3a3e21f","original_commit_id":"a017f5e38561a152e8a757b340c1b0c6b3a3e21f","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":"it looks like this could actually contain data about another network (i.e. kovan) - is this correct?  if so, we should give a different name","created_at":"2018-10-20T00:32:17Z","updated_at":"2018-10-20T00:32:17Z","html_url":"https://github.com/0xProject/0x-monorepo/pull/1159#discussion_r226809391","pull_request_url":"https://api.github.com/repos/0xProject/0x-monorepo/pulls/1159","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/0xProject/0x-monorepo/pulls/comments/226809391"},"html":{"href":"https://github.com/0xProject/0x-monorepo/pull/1159#discussion_r226809391"},"pull_request":{"href":"https://api.github.com/repos/0xProject/0x-monorepo/pulls/1159"}}},"pull_request":{"url":"https://api.github.com/repos/0xProject/0x-monorepo/pulls/1159","id":224044647,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI0MDQ0NjQ3","html_url":"https://github.com/0xProject/0x-monorepo/pull/1159","diff_url":"https://github.com/0xProject/0x-monorepo/pull/1159.diff","patch_url":"https://github.com/0xProject/0x-monorepo/pull/1159.patch","issue_url":"https://api.github.com/repos/0xProject/0x-monorepo/issues/1159","number":1159,"state":"open","locked":false,"title":"[instant] Pass in liquiditySource, assetData and other settings from render","user":{"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},"body":"## Description\r\n\r\nThe branch mostly implements passing various settings from the top-level `render` method instead of hard coding them and then dealing with the implications.\r\n\r\n- Added the concept of top-level props being added to the redux store state. \r\n- Added an `Asset` concept, which contains both assetData and the metaData.\r\n- Added what is basically a join table for assetDatas across networks. Bad idea?\r\n- Added an `AssetBuyer` to state - the plan is for us to re-instantiate this whenever some salient part of state changes (the provider?).\r\n- Added network to state and use that information where relevant (such as when initializing AssetBuyer).\r\n- The value of `primaryColor` is automatically updated when the `selectedAsset` is changed.\r\n\r\nIt's worth noting that we don't support changing `ZeroExInstant` props dynamically (ie. in the case where `ZeroExInstant` is being used in a React project) because the props are used to initialize the redux store on init and then ignored afterwards. For now this is probably ok, and reduces the complexity of the code.\r\n\r\nAnother thing worth noting is that the `metaData` field in the `Asset` object is not optional. If we don't find `metaData` regarding an assetData, then we throw an error. The rest of the app depends on us having this data. The plus side is that the integrator can (only) append to the default metaData we provide. This made more sense to me than the alternative because: \r\n1. We need **decimals** which is part of the `metaData` to even get a `BuyQuote`.\r\n2. We need the rest of the data to deliver a good UX.\r\n3. It reduces the complexity of the code.\r\n\r\n## Questions\r\n1. Do we want to support dynamically changing `ZeroExInstant` props/configs? If not, do we want to take it even further and not even pass that data into the redux `State` and instead write it to some global object we can always reference it?\r\n\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-18T17:54:31Z","updated_at":"2018-10-20T00:32:17Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7c943f68890c478e34542b83bd518afcd6e82c90","assignee":null,"assignees":[],"requested_reviewers":[{"login":"BMillman19","id":1141340,"node_id":"MDQ6VXNlcjExNDEzNDA=","avatar_url":"https://avatars0.githubusercontent.com/u/1141340?v=4","gravatar_id":"","url":"https://api.github.com/users/BMillman19","html_url":"https://github.com/BMillman19","followers_url":"https://api.github.com/users/BMillman19/followers","following_url":"https://api.github.com/users/BMillman19/following{/other_user}","gists_url":"https://api.github.com/users/BMillman19/gists{/gist_id}","starred_url":"https://api.github.com/users/BMillman19/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BMillman19/subscriptions","organizations_url":"https://api.github.com/users/BMillman19/orgs","repos_url":"https://api.github.com/users/BMillman19/repos","events_url":"https://api.github.com/users/BMillman19/events{/privacy}","received_events_url":"https://api.github.com/users/BMillman19/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":1077385218,"node_id":"MDU6TGFiZWwxMDc3Mzg1MjE4","url":"https://api.github.com/repos/0xProject/0x-monorepo/labels/instant","name":"instant","color":"fbca04","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/0xProject/0x-monorepo/pulls/1159/commits","review_comments_url":"https://api.github.com/repos/0xProject/0x-monorepo/pulls/1159/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/1159/comments","statuses_url":"https://api.github.com/repos/0xProject/0x-monorepo/statuses/a017f5e38561a152e8a757b340c1b0c6b3a3e21f","head":{"label":"0xProject:feature/instant/beta-render-et-al","ref":"feature/instant/beta-render-et-al","sha":"a017f5e38561a152e8a757b340c1b0c6b3a3e21f","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-19T20:29:09Z","pushed_at":"2018-10-19T23:43:26Z","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":61773,"stargazers_count":855,"watchers_count":855,"language":"TypeScript","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":235,"mirror_url":null,"archived":false,"open_issues_count":58,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":235,"open_issues":58,"watchers":855,"default_branch":"development"}},"base":{"label":"0xProject:development","ref":"development","sha":"2c308c0f4c172293e634d27f731d026e0361e639","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-19T20:29:09Z","pushed_at":"2018-10-19T23:43:26Z","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":61773,"stargazers_count":855,"watchers_count":855,"language":"TypeScript","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":235,"mirror_url":null,"archived":false,"open_issues_count":58,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":235,"open_issues":58,"watchers":855,"default_branch":"development"}},"_links":{"self":{"href":"https://api.github.com/repos/0xProject/0x-monorepo/pulls/1159"},"html":{"href":"https://github.com/0xProject/0x-monorepo/pull/1159"},"issue":{"href":"https://api.github.com/repos/0xProject/0x-monorepo/issues/1159"},"comments":{"href":"https://api.github.com/repos/0xProject/0x-monorepo/issues/1159/comments"},"review_comments":{"href":"https://api.github.com/repos/0xProject/0x-monorepo/pulls/1159/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/1159/commits"},"statuses":{"href":"https://api.github.com/repos/0xProject/0x-monorepo/statuses/a017f5e38561a152e8a757b340c1b0c6b3a3e21f"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"steveklebanoff"}}