{"action":"created","comment":{"url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/pulls/comments/242980763","pull_request_review_id":186628827,"id":242980763,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0Mjk4MDc2Mw==","diff_hunk":"@@ -0,0 +1,499 @@\n+const Web3 = require('web3');\n+const fs = require('fs');\n+const path = require('path');\n+const rlp = require('rlp');\n+\n+const STATE_NEW = 'new';\n+const STATE_LINKED = 'linked';\n+const STATE_INSTANTIATED = 'instantiated';\n+\n+const TYPE_CONTRACT_REFERENCE = 'contract_reference';\n+\n+class Contract {\n+    /**\n+     * @param {string} contractName Name of the contract to create. If this contract is\n+     *                 linked into another contracted, the provided contractName has to\n+     *                 match the linking placeholder.\n+     * @param {string} contracBytecode Bytecode of the contract.\n+     * @param {Array<*>} [constructorABI] ABI of the contract constructor.\n+     * @param {Array<*>} [constructorArgs] Arguments for the contract constructor.\n+     */\n+    constructor(contractName, contractBytecode, constructorABI, constructorArgs) {\n+        this.contractName = contractName;\n+        this.contractBytecode = contractBytecode;\n+        this.constructorABI = constructorABI;\n+        this.constructorArgs = constructorArgs;\n+\n+        // initialize state machine\n+        this._state = STATE_NEW;\n+        this.linkReplacements = [];\n+\n+        this._checkFullyLinked = this._checkFullyLinked.bind(this);\n+        this._getDependenciesCount = this._getDependenciesCount.bind(this);\n+        this._linkBytecode = this._linkBytecode.bind(this);\n+        this._linkBytecodeReplacement = this._linkBytecodeReplacement.bind(this);\n+        this.addLinkedDependency = this.addLinkedDependency.bind(this);\n+        this.getAddress = this.getAddress.bind(this);\n+        this.instantiate = this.instantiate.bind(this);\n+        this.linkedBytecode = this.linkedBytecode.bind(this);\n+        this.reference = this.reference.bind(this);\n+        this.setAddress = this.setAddress.bind(this);\n+    }\n+\n+    /**\n+     * Helper for loading a contract saved in a format followin the truffle-contract-schema.\n+     *\n+     * See {@link https://github.com/trufflesuite/truffle/tree/66e3b1cb10df881d80e2a22ddea68e9dcfbdcdb1/packages/truffle-contract-schema}\n+     *\n+     * @param {string} contractName Name of the contract to load.\n+     * @param {Array<*>} constructorArgs Arguments for the contract constructor.\n+     * @param {object} options\n+     * @param {string} options.rootDir The root directory of node project that is using truffle.\n+     *                 Contract build artifacts are expected to be located at\n+     *                 `rootDir/build/contracts`.\n+     */\n+    static loadTruffleContract(contractName, constructorArgs, options = {}) {\n+        const defaultOptions = {\n+            rootDir: `${__dirname}/../`,\n+        };\n+        const mergedOptions = Object.assign(defaultOptions, options);\n+\n+        const contractPath = path.join(mergedOptions.rootDir, `build/contracts/${contractName}.json`);\n+        const contents = fs.readFileSync(contractPath);\n+        const truffleJson = JSON.parse(contents);","path":"tools/deployment_tools.js","position":null,"original_position":63,"commit_id":"45677fc04a1527df73ff9dbf7a8b18522d1785a2","original_commit_id":"f9f045d46b3ca65c57e493530113fe47f6c81e08","user":{"login":"hobofan","id":601283,"node_id":"MDQ6VXNlcjYwMTI4Mw==","avatar_url":"https://avatars2.githubusercontent.com/u/601283?v=4","gravatar_id":"","url":"https://api.github.com/users/hobofan","html_url":"https://github.com/hobofan","followers_url":"https://api.github.com/users/hobofan/followers","following_url":"https://api.github.com/users/hobofan/following{/other_user}","gists_url":"https://api.github.com/users/hobofan/gists{/gist_id}","starred_url":"https://api.github.com/users/hobofan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hobofan/subscriptions","organizations_url":"https://api.github.com/users/hobofan/orgs","repos_url":"https://api.github.com/users/hobofan/repos","events_url":"https://api.github.com/users/hobofan/events{/privacy}","received_events_url":"https://api.github.com/users/hobofan/received_events","type":"User","site_admin":false},"body":"One good JS idiomatic alternative would be to have `loadTruffleContract` as a free-standing function, but I generally prefer keeping alternative constructors inside the class itself.","created_at":"2018-12-19T16:19:47Z","updated_at":"2018-12-19T16:19:47Z","html_url":"https://github.com/OpenSTFoundation/mosaic-contracts/pull/458#discussion_r242980763","pull_request_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/pulls/458","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/pulls/comments/242980763"},"html":{"href":"https://github.com/OpenSTFoundation/mosaic-contracts/pull/458#discussion_r242980763"},"pull_request":{"href":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/pulls/458"}},"in_reply_to_id":242871375},"pull_request":{"url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/pulls/458","id":231000802,"node_id":"MDExOlB1bGxSZXF1ZXN0MjMxMDAwODAy","html_url":"https://github.com/OpenSTFoundation/mosaic-contracts/pull/458","diff_url":"https://github.com/OpenSTFoundation/mosaic-contracts/pull/458.diff","patch_url":"https://github.com/OpenSTFoundation/mosaic-contracts/pull/458.patch","issue_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/issues/458","number":458,"state":"open","locked":false,"title":"Add initial version of genesis deployment tool","user":{"login":"hobofan","id":601283,"node_id":"MDQ6VXNlcjYwMTI4Mw==","avatar_url":"https://avatars2.githubusercontent.com/u/601283?v=4","gravatar_id":"","url":"https://api.github.com/users/hobofan","html_url":"https://github.com/hobofan","followers_url":"https://api.github.com/users/hobofan/followers","following_url":"https://api.github.com/users/hobofan/following{/other_user}","gists_url":"https://api.github.com/users/hobofan/gists{/gist_id}","starred_url":"https://api.github.com/users/hobofan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hobofan/subscriptions","organizations_url":"https://api.github.com/users/hobofan/orgs","repos_url":"https://api.github.com/users/hobofan/repos","events_url":"https://api.github.com/users/hobofan/events{/privacy}","received_events_url":"https://api.github.com/users/hobofan/received_events","type":"User","site_admin":false},"body":"Adds the first version of the genesis deployment script(s).\r\n\r\nThis allows us to generate the `accounts` section for a parity chainspec, taking as input the bytecode of the compiled contracts and their constructor arguments (+ ABI). This greatly simplifies the bootstrapping of a new Auxiliary chain.\r\n\r\nAlso adds `eslint` for JS style conformance as per #404.\r\n\r\n**TODO**:\r\n- [x] Find a way to be able to invoke script directly instead of via `truffle exec` (truffle exec has a poluted STDOUT output)\r\n- [x] A bit simpler interface for adding Truffle contracts\r\n- [x] Add script to merge the output of one of these deployment scripts into a chainspec\r\n- [x] Allow for specifying a address for a contract instance instead of incrementing from a fixed address.\r\n- [x] More robust way of incrementing addresses (that works for more than 255 addresses)\r\n- [x] Better documentation of the `ContractRegistry` functions\r\n\r\n@pgev : I gave you access to my fork","created_at":"2018-11-14T22:15:45Z","updated_at":"2018-12-19T16:19:47Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8cedb4cddc8837517c89d614a8c92f0bef38e8d0","assignee":{"login":"hobofan","id":601283,"node_id":"MDQ6VXNlcjYwMTI4Mw==","avatar_url":"https://avatars2.githubusercontent.com/u/601283?v=4","gravatar_id":"","url":"https://api.github.com/users/hobofan","html_url":"https://github.com/hobofan","followers_url":"https://api.github.com/users/hobofan/followers","following_url":"https://api.github.com/users/hobofan/following{/other_user}","gists_url":"https://api.github.com/users/hobofan/gists{/gist_id}","starred_url":"https://api.github.com/users/hobofan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hobofan/subscriptions","organizations_url":"https://api.github.com/users/hobofan/orgs","repos_url":"https://api.github.com/users/hobofan/repos","events_url":"https://api.github.com/users/hobofan/events{/privacy}","received_events_url":"https://api.github.com/users/hobofan/received_events","type":"User","site_admin":false},"assignees":[{"login":"hobofan","id":601283,"node_id":"MDQ6VXNlcjYwMTI4Mw==","avatar_url":"https://avatars2.githubusercontent.com/u/601283?v=4","gravatar_id":"","url":"https://api.github.com/users/hobofan","html_url":"https://github.com/hobofan","followers_url":"https://api.github.com/users/hobofan/followers","following_url":"https://api.github.com/users/hobofan/following{/other_user}","gists_url":"https://api.github.com/users/hobofan/gists{/gist_id}","starred_url":"https://api.github.com/users/hobofan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hobofan/subscriptions","organizations_url":"https://api.github.com/users/hobofan/orgs","repos_url":"https://api.github.com/users/hobofan/repos","events_url":"https://api.github.com/users/hobofan/events{/privacy}","received_events_url":"https://api.github.com/users/hobofan/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"benjaminbollen","id":5057507,"node_id":"MDQ6VXNlcjUwNTc1MDc=","avatar_url":"https://avatars0.githubusercontent.com/u/5057507?v=4","gravatar_id":"","url":"https://api.github.com/users/benjaminbollen","html_url":"https://github.com/benjaminbollen","followers_url":"https://api.github.com/users/benjaminbollen/followers","following_url":"https://api.github.com/users/benjaminbollen/following{/other_user}","gists_url":"https://api.github.com/users/benjaminbollen/gists{/gist_id}","starred_url":"https://api.github.com/users/benjaminbollen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benjaminbollen/subscriptions","organizations_url":"https://api.github.com/users/benjaminbollen/orgs","repos_url":"https://api.github.com/users/benjaminbollen/repos","events_url":"https://api.github.com/users/benjaminbollen/events{/privacy}","received_events_url":"https://api.github.com/users/benjaminbollen/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/pulls/458/commits","review_comments_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/pulls/458/comments","review_comment_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/pulls/comments{/number}","comments_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/issues/458/comments","statuses_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/statuses/45677fc04a1527df73ff9dbf7a8b18522d1785a2","head":{"label":"hobofan:feature/genesis-deployment","ref":"feature/genesis-deployment","sha":"45677fc04a1527df73ff9dbf7a8b18522d1785a2","user":{"login":"hobofan","id":601283,"node_id":"MDQ6VXNlcjYwMTI4Mw==","avatar_url":"https://avatars2.githubusercontent.com/u/601283?v=4","gravatar_id":"","url":"https://api.github.com/users/hobofan","html_url":"https://github.com/hobofan","followers_url":"https://api.github.com/users/hobofan/followers","following_url":"https://api.github.com/users/hobofan/following{/other_user}","gists_url":"https://api.github.com/users/hobofan/gists{/gist_id}","starred_url":"https://api.github.com/users/hobofan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hobofan/subscriptions","organizations_url":"https://api.github.com/users/hobofan/orgs","repos_url":"https://api.github.com/users/hobofan/repos","events_url":"https://api.github.com/users/hobofan/events{/privacy}","received_events_url":"https://api.github.com/users/hobofan/received_events","type":"User","site_admin":false},"repo":{"id":157606410,"node_id":"MDEwOlJlcG9zaXRvcnkxNTc2MDY0MTA=","name":"mosaic-contracts","full_name":"hobofan/mosaic-contracts","private":false,"owner":{"login":"hobofan","id":601283,"node_id":"MDQ6VXNlcjYwMTI4Mw==","avatar_url":"https://avatars2.githubusercontent.com/u/601283?v=4","gravatar_id":"","url":"https://api.github.com/users/hobofan","html_url":"https://github.com/hobofan","followers_url":"https://api.github.com/users/hobofan/followers","following_url":"https://api.github.com/users/hobofan/following{/other_user}","gists_url":"https://api.github.com/users/hobofan/gists{/gist_id}","starred_url":"https://api.github.com/users/hobofan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hobofan/subscriptions","organizations_url":"https://api.github.com/users/hobofan/orgs","repos_url":"https://api.github.com/users/hobofan/repos","events_url":"https://api.github.com/users/hobofan/events{/privacy}","received_events_url":"https://api.github.com/users/hobofan/received_events","type":"User","site_admin":false},"html_url":"https://github.com/hobofan/mosaic-contracts","description":"Mosaic is a set of meta-blockchains on top of Ethereum to scale DApps","fork":true,"url":"https://api.github.com/repos/hobofan/mosaic-contracts","forks_url":"https://api.github.com/repos/hobofan/mosaic-contracts/forks","keys_url":"https://api.github.com/repos/hobofan/mosaic-contracts/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hobofan/mosaic-contracts/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hobofan/mosaic-contracts/teams","hooks_url":"https://api.github.com/repos/hobofan/mosaic-contracts/hooks","issue_events_url":"https://api.github.com/repos/hobofan/mosaic-contracts/issues/events{/number}","events_url":"https://api.github.com/repos/hobofan/mosaic-contracts/events","assignees_url":"https://api.github.com/repos/hobofan/mosaic-contracts/assignees{/user}","branches_url":"https://api.github.com/repos/hobofan/mosaic-contracts/branches{/branch}","tags_url":"https://api.github.com/repos/hobofan/mosaic-contracts/tags","blobs_url":"https://api.github.com/repos/hobofan/mosaic-contracts/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hobofan/mosaic-contracts/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hobofan/mosaic-contracts/git/refs{/sha}","trees_url":"https://api.github.com/repos/hobofan/mosaic-contracts/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hobofan/mosaic-contracts/statuses/{sha}","languages_url":"https://api.github.com/repos/hobofan/mosaic-contracts/languages","stargazers_url":"https://api.github.com/repos/hobofan/mosaic-contracts/stargazers","contributors_url":"https://api.github.com/repos/hobofan/mosaic-contracts/contributors","subscribers_url":"https://api.github.com/repos/hobofan/mosaic-contracts/subscribers","subscription_url":"https://api.github.com/repos/hobofan/mosaic-contracts/subscription","commits_url":"https://api.github.com/repos/hobofan/mosaic-contracts/commits{/sha}","git_commits_url":"https://api.github.com/repos/hobofan/mosaic-contracts/git/commits{/sha}","comments_url":"https://api.github.com/repos/hobofan/mosaic-contracts/comments{/number}","issue_comment_url":"https://api.github.com/repos/hobofan/mosaic-contracts/issues/comments{/number}","contents_url":"https://api.github.com/repos/hobofan/mosaic-contracts/contents/{+path}","compare_url":"https://api.github.com/repos/hobofan/mosaic-contracts/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hobofan/mosaic-contracts/merges","archive_url":"https://api.github.com/repos/hobofan/mosaic-contracts/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hobofan/mosaic-contracts/downloads","issues_url":"https://api.github.com/repos/hobofan/mosaic-contracts/issues{/number}","pulls_url":"https://api.github.com/repos/hobofan/mosaic-contracts/pulls{/number}","milestones_url":"https://api.github.com/repos/hobofan/mosaic-contracts/milestones{/number}","notifications_url":"https://api.github.com/repos/hobofan/mosaic-contracts/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hobofan/mosaic-contracts/labels{/name}","releases_url":"https://api.github.com/repos/hobofan/mosaic-contracts/releases{/id}","deployments_url":"https://api.github.com/repos/hobofan/mosaic-contracts/deployments","created_at":"2018-11-14T20:24:17Z","updated_at":"2018-11-14T20:24:20Z","pushed_at":"2018-12-19T16:14:25Z","git_url":"git://github.com/hobofan/mosaic-contracts.git","ssh_url":"git@github.com:hobofan/mosaic-contracts.git","clone_url":"https://github.com/hobofan/mosaic-contracts.git","svn_url":"https://github.com/hobofan/mosaic-contracts","homepage":"https://simpletoken.org","size":7361,"stargazers_count":0,"watchers_count":0,"language":"Solidity","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"OpenSTFoundation:develop","ref":"develop","sha":"f50b058d0f7ba5969a708dff6ac4b63f2bb2d720","user":{"login":"OpenSTFoundation","id":31754790,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMxNzU0Nzkw","avatar_url":"https://avatars2.githubusercontent.com/u/31754790?v=4","gravatar_id":"","url":"https://api.github.com/users/OpenSTFoundation","html_url":"https://github.com/OpenSTFoundation","followers_url":"https://api.github.com/users/OpenSTFoundation/followers","following_url":"https://api.github.com/users/OpenSTFoundation/following{/other_user}","gists_url":"https://api.github.com/users/OpenSTFoundation/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenSTFoundation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenSTFoundation/subscriptions","organizations_url":"https://api.github.com/users/OpenSTFoundation/orgs","repos_url":"https://api.github.com/users/OpenSTFoundation/repos","events_url":"https://api.github.com/users/OpenSTFoundation/events{/privacy}","received_events_url":"https://api.github.com/users/OpenSTFoundation/received_events","type":"Organization","site_admin":false},"repo":{"id":108171643,"node_id":"MDEwOlJlcG9zaXRvcnkxMDgxNzE2NDM=","name":"mosaic-contracts","full_name":"OpenSTFoundation/mosaic-contracts","private":false,"owner":{"login":"OpenSTFoundation","id":31754790,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMxNzU0Nzkw","avatar_url":"https://avatars2.githubusercontent.com/u/31754790?v=4","gravatar_id":"","url":"https://api.github.com/users/OpenSTFoundation","html_url":"https://github.com/OpenSTFoundation","followers_url":"https://api.github.com/users/OpenSTFoundation/followers","following_url":"https://api.github.com/users/OpenSTFoundation/following{/other_user}","gists_url":"https://api.github.com/users/OpenSTFoundation/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenSTFoundation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenSTFoundation/subscriptions","organizations_url":"https://api.github.com/users/OpenSTFoundation/orgs","repos_url":"https://api.github.com/users/OpenSTFoundation/repos","events_url":"https://api.github.com/users/OpenSTFoundation/events{/privacy}","received_events_url":"https://api.github.com/users/OpenSTFoundation/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/OpenSTFoundation/mosaic-contracts","description":"Mosaic is a set of meta-blockchains on top of Ethereum to scale DApps","fork":false,"url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts","forks_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/forks","keys_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/keys{/key_id}","collaborators_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/teams","hooks_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/hooks","issue_events_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/issues/events{/number}","events_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/events","assignees_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/assignees{/user}","branches_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/branches{/branch}","tags_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/tags","blobs_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/git/refs{/sha}","trees_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/git/trees{/sha}","statuses_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/statuses/{sha}","languages_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/languages","stargazers_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/stargazers","contributors_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/contributors","subscribers_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/subscribers","subscription_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/subscription","commits_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/commits{/sha}","git_commits_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/git/commits{/sha}","comments_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/comments{/number}","issue_comment_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/issues/comments{/number}","contents_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/contents/{+path}","compare_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/compare/{base}...{head}","merges_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/merges","archive_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/downloads","issues_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/issues{/number}","pulls_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/pulls{/number}","milestones_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/milestones{/number}","notifications_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/labels{/name}","releases_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/releases{/id}","deployments_url":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/deployments","created_at":"2017-10-24T19:09:30Z","updated_at":"2018-12-19T08:55:44Z","pushed_at":"2018-12-19T16:19:32Z","git_url":"git://github.com/OpenSTFoundation/mosaic-contracts.git","ssh_url":"git@github.com:OpenSTFoundation/mosaic-contracts.git","clone_url":"https://github.com/OpenSTFoundation/mosaic-contracts.git","svn_url":"https://github.com/OpenSTFoundation/mosaic-contracts","homepage":"https://simpletoken.org","size":7464,"stargazers_count":92,"watchers_count":92,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":21,"mirror_url":null,"archived":false,"open_issues_count":91,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":21,"open_issues":91,"watchers":92,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/pulls/458"},"html":{"href":"https://github.com/OpenSTFoundation/mosaic-contracts/pull/458"},"issue":{"href":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/issues/458"},"comments":{"href":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/issues/458/comments"},"review_comments":{"href":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/pulls/458/comments"},"review_comment":{"href":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/pulls/458/commits"},"statuses":{"href":"https://api.github.com/repos/OpenSTFoundation/mosaic-contracts/statuses/45677fc04a1527df73ff9dbf7a8b18522d1785a2"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"hobofan"}}