{"action":"created","comment":{"url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/pulls/comments/193470601","pull_request_review_id":126449598,"id":193470601,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5MzQ3MDYwMQ==","diff_hunk":"@@ -1,126 +1,286 @@\n const dgw = require('../');\n-const { expect } = require('chai');\n+const {expect} = require('chai');\n \n const blocks = [{\n-  height: 312667,\n-  target: 0x1b193a68,\n-  timestamp: 1438528803,\n+    height: 312667,\n+    target: 0x1b193a68,//\n+    timestamp: 1438528803,\n }, {\n-  height: 312668,\n-  target: 0x1b1940c9,\n-  timestamp: 1438528786,\n+    height: 312668,\n+    target: 0x1b1940c9,//454639817\n+    timestamp: 1438528786,\n }, {\n-  height: 312669,\n-  target: 0x1b189a0a,\n-  timestamp: 1438529531,\n+    height: 312669,\n+    target: 0x1b189a0a,\n+    timestamp: 1438529531,\n }, {\n-  height: 312670,\n-  target: 0x1b1cf566,\n-  timestamp: 1438529543,\n+    height: 312670,\n+    target: 0x1b1cf566,\n+    timestamp: 1438529543,\n }, {\n-  height: 312671,\n-  target: 0x1b1d8480,\n-  timestamp: 1438529565,\n+    height: 312671,\n+    target: 0x1b1d8480,\n+    timestamp: 1438529565,\n }, {\n-  height: 312672,\n-  target: 0x1b1b6b56,\n-  timestamp: 1438529666,\n+    height: 312672,\n+    target: 0x1b1b6b56,\n+    timestamp: 1438529666,\n }, {\n-  height: 312673,\n-  target: 0x1b1bae81,\n-  timestamp: 1438529838,\n+    height: 312673,\n+    target: 0x1b1bae81,\n+    timestamp: 1438529838,\n }, {\n-  height: 312674,\n-  target: 0x1b1c33e3,\n-  timestamp: 1438529995,\n+    height: 312674,\n+    target: 0x1b1c33e3,\n+    timestamp: 1438529995,\n }, {\n-  height: 312675,\n-  target: 0x1b1d68a5,\n-  timestamp: 1438530059,\n+    height: 312675,\n+    target: 0x1b1d68a5,\n+    timestamp: 1438530059,\n }, {\n-  height: 312676,\n-  target: 0x1b1d1ffc,\n-  timestamp: 1438530151,\n+    height: 312676,\n+    target: 0x1b1d1ffc,\n+    timestamp: 1438530151,\n }, {\n-  height: 312677,\n-  target: 0x1b1d61b7,\n-  timestamp: 1438530199,\n+    height: 312677,\n+    target: 0x1b1d61b7,\n+    timestamp: 1438530199,\n }, {\n-  height: 312678,\n-  target: 0x1b1e3597,\n-  timestamp: 1438530280,\n+    height: 312678,\n+    target: 0x1b1e3597,\n+    timestamp: 1438530280,\n }, {\n-  height: 312679,\n-  target: 0x1b1dcb40,\n-  timestamp: 1438530401,\n+    height: 312679,\n+    target: 0x1b1dcb40,\n+    timestamp: 1438530401,\n }, {\n-  height: 312680,\n-  target: 0x1b1de353,\n-  timestamp: 1438530599,\n+    height: 312680,\n+    target: 0x1b1de353,\n+    timestamp: 1438530599,\n }, {\n-  height: 312681,\n-  target: 0x1b1d9f81,\n-  timestamp: 1438530667,\n+    height: 312681,\n+    target: 0x1b1d9f81,\n+    timestamp: 1438530667,\n }, {\n-  height: 312682,\n-  target: 0x1b1bb5a3,\n-  timestamp: 1438530728,\n+    height: 312682,\n+    target: 0x1b1bb5a3,\n+    timestamp: 1438530728,\n }, {\n-  height: 312683,\n-  target: 0x1b17e949,\n-  timestamp: 1438531015,\n+    height: 312683,\n+    target: 0x1b17e949,\n+    timestamp: 1438531015,\n }, {\n-  height: 312684,\n-  target: 0x1b1797b7,\n-  timestamp: 1438531231,\n+    height: 312684,\n+    target: 0x1b1797b7,\n+    timestamp: 1438531231,\n }, {\n-  height: 312685,\n-  target: 0x1b19406d,\n-  timestamp: 1438531237,\n+    height: 312685,\n+    target: 0x1b19406d,\n+    timestamp: 1438531237,\n }, {\n-  height: 312686,\n-  target: 0x1b193835,\n-  timestamp: 1438531418,\n+    height: 312686,\n+    target: 0x1b193835,\n+    timestamp: 1438531418,\n }, {\n-  height: 312687,\n-  target: 0x1b15f370,\n-  timestamp: 1438531477,\n+    height: 312687,\n+    target: 0x1b15f370,\n+    timestamp: 1438531477,\n }, {\n-  height: 312688,\n-  target: 0x1b15bda6,\n-  timestamp: 1438531515,\n+    height: 312688,\n+    target: 0x1b15bda6,\n+    timestamp: 1438531515,\n }, {\n-  height: 312689,\n-  target: 0x1b15792d,\n-  timestamp: 1438531838,\n+    height: 312689,\n+    target: 0x1b15792d,\n+    timestamp: 1438531838,\n }, {\n-  height: 312690,\n-  target: 0x1b16dca7,\n-  timestamp: 1438531999,\n+    height: 312690,\n+    target: 0x1b16dca7,//454483111\n+    timestamp: 1438531999,\n }, {\n-  height: 312691,\n-  target: 0x1b1777d4,\n-  timestamp: 1438531991,\n+    height: 312691,\n+    target: 0x1b1777d4,//454522836\n+    timestamp: 1438531991,\n }];\n \n describe('dark gravity wave', () => {\n-  describe('difficulty calculation', () => {\n-    it('should be valid for low enough target', () => {\n-      const highTargetBits = 0x1b0777d4;\n-      const result = dgw.isValidTarget(highTargetBits, blocks);\n-      expect(result).to.equal(true);\n-    });\n+    describe('difficulty calculation', () => {\n+        it('should be valid for low enough target', () => {\n+            const highTargetBits = 0x1b0777d4; // 453474260\n+            const result = dgw.isValidTarget(highTargetBits, blocks);\n+            expect(result).to.equal(true);\n+        });\n+\n+        it('should be invalid for too high target', () => {\n+            const highTargetBits = 0x208fffff; // 546308095\n+            const result = dgw.isValidTarget(highTargetBits, blocks);\n+            expect(result).to.equal(false);\n+        });\n+\n+        it('should be valid for the max regtest target if less than 25 blocks has been mined', () => {\n+            const highTargetBits = 0x207fffff;\n+            const result = dgw.isValidTarget(highTargetBits, blocks.slice(0, 10));\n+            expect(result).to.equal(true);\n+        });\n+\n+                it('should be valid for int headerBits', () => {\n+            const highTargetInt = 1000;\n+            const result = dgw.isValidTarget(highTargetInt, blocks);\n+            expect(result).to.equal(true);\n+        });\n+\n+        it('should be invalid maxTarget = 0x207fffff', () => {\n+            const highTargetInt = 0x207fffff;\n+            const result = dgw.isValidTarget(highTargetInt, blocks);\n+            expect(result).to.equal(false);\n+        });\n+\n+        it('should be valid when num blocks < maxBlocks and maxTarget = 0x207fffff', () => {//TODO is it True?\n+            const highTargetInt = 0x207fffff;\n+            const result = dgw.isValidTarget(highTargetInt, blocks.slice(0, 10));\n+            expect(result).to.equal(true);// TODO change on false?\n+        });\n+\n+        it('should be invalid maxTarget = 0x207fffff as int', () => {\n+            const highTargetInt = 545259519;\n+            const result = dgw.isValidTarget(highTargetInt, blocks);\n+            expect(result).to.equal(false);\n+        });\n+\n+        it('should be valid for maxTarget > 0x207fffff', () => {\n+            const highTargetInt = 0x20800000;\n+            const result = dgw.isValidTarget(highTargetInt, blocks);\n+            expect(result).to.equal(true);\n+        });\n+\n+        it('should be valid for maxTarget > 0x207fffff as int', () => {\n+            const highTargetInt = 0x20800000;\n+            const result = dgw.isValidTarget(highTargetInt, blocks);\n+            expect(result).to.equal(true);\n+        });\n+\n+        it('should be valid when allHeaders is empty array', () => {\n+            const highTargetInt = 0x20800000;\n+            const result = dgw.isValidTarget(highTargetInt, [{}]);\n+            expect(result).to.equal(true);\n+        });\n+\n+        it('should throw error for allHeaders is {}', () => {\n+            const highTargetBits = 0x208fffff;\n+            expect(() => {\n+                dgw.isValidTarget(highTargetBits, {});\n+            }).to.throw('allHeaders.slice is not a function');\n+        });\n+\n+        it('should throw error for allHeaders is string', () => {\n+            // TODO not very good that we allow string although it's length < 25 and ignored in getTarget\n+            const highTargetBits = 0x1b0777d4;\n+            const result = dgw.isValidTarget(highTargetBits, 'my_string');\n+            expect(result).to.equal(true);\n+        });\n+\n+        it('should throw error for allHeaders is string > 25 chars', () => {\n+            const highTargetBits = 0x1b0777d4;\n+            expect(() => {\n+                dgw.isValidTarget(highTargetBits, 's'.repeat(26));\n+            }).to.throw('allHeaders.slice(...).reverse is not a function');\n+        });\n+\n+        it('should throw error for signed int', () => {\n+            expect(() => {\n+                dgw.isValidTarget(-1, blocks);\n+            }).to.throw('byte array longer than desired length');\n+        });\n+\n+        it('should throw error when compact is undefined', () => {\n+            expect(() => {\n+                dgw.isValidTarget(undefined, blocks);\n+            }).to.throw('Compact of type undefined not supported');\n+        });\n+\n+        it('should throw error when compact is boolean', () => {\n+            expect(() => {\n+                dgw.isValidTarget(true, blocks);\n+            }).to.throw('Compact of type boolean not supported');\n+        });\n+\n+        it('height values ignored in calculation in getTarget function', () => {\n+            //TODO is it true?\n+            //and we can pass any blocks height: invalid, duplicates, not ordered...?\n+            const highTargetBits = 0x1b0777d4;\n+            const blocks2 = JSON.parse(JSON.stringify(blocks));\n+            blocks2.forEach(function(value){\n+                delete value[\"height\"];\n+            });\n+            const result = dgw.isValidTarget(highTargetBits, blocks2);\n+            expect(result).to.equal(true);\n+        });\n+\n+        it('should throw error when compact is not defined in blocks', () => {\n+            const highTargetBits = 0x1b0777d4;\n+            const blocks2 = JSON.parse(JSON.stringify(blocks));\n+            blocks2.forEach(function(value){\n+                delete value[\"target\"];\n+            });\n+            expect(() => {\n+                dgw.isValidTarget(highTargetBits, blocks2);\n+            }).to.throw('Compact of type undefined not supported');\n+        });\n+\n+        it('should be invalid when timestamp values not specified', () => {\n+            const highTargetBits = 0x1b0777d4;\n+            const blocks2 = JSON.parse(JSON.stringify(blocks));\n+            blocks2.forEach(function(value){\n+                delete value[\"timestamp\"];\n+            });\n+            const result = dgw.isValidTarget(highTargetBits, blocks2);\n+            expect(result).to.equal(false);\n+       });\n+\n+        it('should be invalid for blockTime=0', () => {\n+            const highTargetBits = 0x1b0777d4; // 453474260\n+            const result = dgw.isValidTarget(highTargetBits, blocks,  blockTime = 0);\n+            expect(result).to.equal(false);\n+        });\n+\n+        it('should be invalid for blockTime negative', () => {//TODO We should not allow negative blockTime\n+            const highTargetBits = 0x1b0777d4; // 453474260\n+            const result = dgw.isValidTarget(highTargetBits, blocks,  blockTime = -1);\n+            expect(result).to.equal(true);//TODO change on true!\n+        });\n+\n+        it('should be invalid when timestamp for some blocks grater then next one', () => {//TODO We should check if timestamp is grater then previous\n+            const highTargetBits = 0x1b0777d4;","path":"test/dark-gravity-wave-test.js","position":335,"original_position":335,"commit_id":"b93037ca870d5fac94012f480eeac326e4dbfb13","original_commit_id":"b93037ca870d5fac94012f480eeac326e4dbfb13","user":{"login":"pvrooyen","id":16741934,"node_id":"MDQ6VXNlcjE2NzQxOTM0","avatar_url":"https://avatars2.githubusercontent.com/u/16741934?v=4","gravatar_id":"","url":"https://api.github.com/users/pvrooyen","html_url":"https://github.com/pvrooyen","followers_url":"https://api.github.com/users/pvrooyen/followers","following_url":"https://api.github.com/users/pvrooyen/following{/other_user}","gists_url":"https://api.github.com/users/pvrooyen/gists{/gist_id}","starred_url":"https://api.github.com/users/pvrooyen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pvrooyen/subscriptions","organizations_url":"https://api.github.com/users/pvrooyen/orgs","repos_url":"https://api.github.com/users/pvrooyen/repos","events_url":"https://api.github.com/users/pvrooyen/events{/privacy}","received_events_url":"https://api.github.com/users/pvrooyen/received_events","type":"User","site_admin":false},"body":"more or less similar reasoning as in line 209.  however we might consider notifying the dev with an exception if things  like this is picked up.  Then again for `timestamp` in specific I am guessing that there is edge cases where timestamps can be out of order and still valid - Im not really sure.  Leaning towards not checking these fields.","created_at":"2018-06-06T16:14:17Z","updated_at":"2018-06-06T16:14:18Z","html_url":"https://github.com/dashevo/dark-gravity-wave-js/pull/2#discussion_r193470601","pull_request_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/pulls/2","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/pulls/comments/193470601"},"html":{"href":"https://github.com/dashevo/dark-gravity-wave-js/pull/2#discussion_r193470601"},"pull_request":{"href":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/pulls/2"}}},"pull_request":{"url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/pulls/2","id":192932106,"node_id":"MDExOlB1bGxSZXF1ZXN0MTkyOTMyMTA2","html_url":"https://github.com/dashevo/dark-gravity-wave-js/pull/2","diff_url":"https://github.com/dashevo/dark-gravity-wave-js/pull/2.diff","patch_url":"https://github.com/dashevo/dark-gravity-wave-js/pull/2.patch","issue_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/issues/2","number":2,"state":"open","locked":false,"title":"new unit tests in dark-gravity-wave-test added","user":{"login":"abvgedeika","id":25477654,"node_id":"MDQ6VXNlcjI1NDc3NjU0","avatar_url":"https://avatars2.githubusercontent.com/u/25477654?v=4","gravatar_id":"","url":"https://api.github.com/users/abvgedeika","html_url":"https://github.com/abvgedeika","followers_url":"https://api.github.com/users/abvgedeika/followers","following_url":"https://api.github.com/users/abvgedeika/following{/other_user}","gists_url":"https://api.github.com/users/abvgedeika/gists{/gist_id}","starred_url":"https://api.github.com/users/abvgedeika/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abvgedeika/subscriptions","organizations_url":"https://api.github.com/users/abvgedeika/orgs","repos_url":"https://api.github.com/users/abvgedeika/repos","events_url":"https://api.github.com/users/abvgedeika/events{/privacy}","received_events_url":"https://api.github.com/users/abvgedeika/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-06-06T08:09:47Z","updated_at":"2018-06-06T16:14:18Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f55d1aad12e6acee31feb3c17d8c004d01ff60c0","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/pulls/2/commits","review_comments_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/pulls/2/comments","review_comment_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/issues/2/comments","statuses_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/statuses/b93037ca870d5fac94012f480eeac326e4dbfb13","head":{"label":"abvgedeika:dev_new_unit_tests","ref":"dev_new_unit_tests","sha":"b93037ca870d5fac94012f480eeac326e4dbfb13","user":{"login":"abvgedeika","id":25477654,"node_id":"MDQ6VXNlcjI1NDc3NjU0","avatar_url":"https://avatars2.githubusercontent.com/u/25477654?v=4","gravatar_id":"","url":"https://api.github.com/users/abvgedeika","html_url":"https://github.com/abvgedeika","followers_url":"https://api.github.com/users/abvgedeika/followers","following_url":"https://api.github.com/users/abvgedeika/following{/other_user}","gists_url":"https://api.github.com/users/abvgedeika/gists{/gist_id}","starred_url":"https://api.github.com/users/abvgedeika/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abvgedeika/subscriptions","organizations_url":"https://api.github.com/users/abvgedeika/orgs","repos_url":"https://api.github.com/users/abvgedeika/repos","events_url":"https://api.github.com/users/abvgedeika/events{/privacy}","received_events_url":"https://api.github.com/users/abvgedeika/received_events","type":"User","site_admin":false},"repo":{"id":136294323,"node_id":"MDEwOlJlcG9zaXRvcnkxMzYyOTQzMjM=","name":"dark-gravity-wave-js","full_name":"abvgedeika/dark-gravity-wave-js","owner":{"login":"abvgedeika","id":25477654,"node_id":"MDQ6VXNlcjI1NDc3NjU0","avatar_url":"https://avatars2.githubusercontent.com/u/25477654?v=4","gravatar_id":"","url":"https://api.github.com/users/abvgedeika","html_url":"https://github.com/abvgedeika","followers_url":"https://api.github.com/users/abvgedeika/followers","following_url":"https://api.github.com/users/abvgedeika/following{/other_user}","gists_url":"https://api.github.com/users/abvgedeika/gists{/gist_id}","starred_url":"https://api.github.com/users/abvgedeika/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abvgedeika/subscriptions","organizations_url":"https://api.github.com/users/abvgedeika/orgs","repos_url":"https://api.github.com/users/abvgedeika/repos","events_url":"https://api.github.com/users/abvgedeika/events{/privacy}","received_events_url":"https://api.github.com/users/abvgedeika/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/abvgedeika/dark-gravity-wave-js","description":"Dark Gravity Wave difficulty retarget algorithm in JavaScript","fork":true,"url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js","forks_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/forks","keys_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/keys{/key_id}","collaborators_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/teams","hooks_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/hooks","issue_events_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/issues/events{/number}","events_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/events","assignees_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/assignees{/user}","branches_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/branches{/branch}","tags_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/tags","blobs_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/git/refs{/sha}","trees_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/git/trees{/sha}","statuses_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/statuses/{sha}","languages_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/languages","stargazers_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/stargazers","contributors_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/contributors","subscribers_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/subscribers","subscription_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/subscription","commits_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/commits{/sha}","git_commits_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/git/commits{/sha}","comments_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/comments{/number}","issue_comment_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/issues/comments{/number}","contents_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/contents/{+path}","compare_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/compare/{base}...{head}","merges_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/merges","archive_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/downloads","issues_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/issues{/number}","pulls_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/pulls{/number}","milestones_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/milestones{/number}","notifications_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/labels{/name}","releases_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/releases{/id}","deployments_url":"https://api.github.com/repos/abvgedeika/dark-gravity-wave-js/deployments","created_at":"2018-06-06T08:02:51Z","updated_at":"2018-06-06T08:02:52Z","pushed_at":"2018-06-06T08:06:05Z","git_url":"git://github.com/abvgedeika/dark-gravity-wave-js.git","ssh_url":"git@github.com:abvgedeika/dark-gravity-wave-js.git","clone_url":"https://github.com/abvgedeika/dark-gravity-wave-js.git","svn_url":"https://github.com/abvgedeika/dark-gravity-wave-js","homepage":"","size":87,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","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":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"dashevo:develop","ref":"develop","sha":"dce9b4aeec687f15eab70fd7d183ef2a0871c20b","user":{"login":"dashevo","id":27746179,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI3NzQ2MTc5","avatar_url":"https://avatars3.githubusercontent.com/u/27746179?v=4","gravatar_id":"","url":"https://api.github.com/users/dashevo","html_url":"https://github.com/dashevo","followers_url":"https://api.github.com/users/dashevo/followers","following_url":"https://api.github.com/users/dashevo/following{/other_user}","gists_url":"https://api.github.com/users/dashevo/gists{/gist_id}","starred_url":"https://api.github.com/users/dashevo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dashevo/subscriptions","organizations_url":"https://api.github.com/users/dashevo/orgs","repos_url":"https://api.github.com/users/dashevo/repos","events_url":"https://api.github.com/users/dashevo/events{/privacy}","received_events_url":"https://api.github.com/users/dashevo/received_events","type":"Organization","site_admin":false},"repo":{"id":72577915,"node_id":"MDEwOlJlcG9zaXRvcnk3MjU3NzkxNQ==","name":"dark-gravity-wave-js","full_name":"dashevo/dark-gravity-wave-js","owner":{"login":"dashevo","id":27746179,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI3NzQ2MTc5","avatar_url":"https://avatars3.githubusercontent.com/u/27746179?v=4","gravatar_id":"","url":"https://api.github.com/users/dashevo","html_url":"https://github.com/dashevo","followers_url":"https://api.github.com/users/dashevo/followers","following_url":"https://api.github.com/users/dashevo/following{/other_user}","gists_url":"https://api.github.com/users/dashevo/gists{/gist_id}","starred_url":"https://api.github.com/users/dashevo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dashevo/subscriptions","organizations_url":"https://api.github.com/users/dashevo/orgs","repos_url":"https://api.github.com/users/dashevo/repos","events_url":"https://api.github.com/users/dashevo/events{/privacy}","received_events_url":"https://api.github.com/users/dashevo/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dashevo/dark-gravity-wave-js","description":"Dark Gravity Wave difficulty retarget algorithm in JavaScript","fork":false,"url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js","forks_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/forks","keys_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/teams","hooks_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/hooks","issue_events_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/issues/events{/number}","events_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/events","assignees_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/assignees{/user}","branches_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/branches{/branch}","tags_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/tags","blobs_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/git/refs{/sha}","trees_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/statuses/{sha}","languages_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/languages","stargazers_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/stargazers","contributors_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/contributors","subscribers_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/subscribers","subscription_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/subscription","commits_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/commits{/sha}","git_commits_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/git/commits{/sha}","comments_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/comments{/number}","issue_comment_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/issues/comments{/number}","contents_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/contents/{+path}","compare_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/merges","archive_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/downloads","issues_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/issues{/number}","pulls_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/pulls{/number}","milestones_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/milestones{/number}","notifications_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/labels{/name}","releases_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/releases{/id}","deployments_url":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/deployments","created_at":"2016-11-01T21:23:22Z","updated_at":"2018-06-06T04:59:12Z","pushed_at":"2018-06-06T08:09:48Z","git_url":"git://github.com/dashevo/dark-gravity-wave-js.git","ssh_url":"git@github.com:dashevo/dark-gravity-wave-js.git","clone_url":"https://github.com/dashevo/dark-gravity-wave-js.git","svn_url":"https://github.com/dashevo/dark-gravity-wave-js","homepage":"","size":85,"stargazers_count":3,"watchers_count":3,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":9,"mirror_url":null,"archived":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":9,"open_issues":1,"watchers":3,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/pulls/2"},"html":{"href":"https://github.com/dashevo/dark-gravity-wave-js/pull/2"},"issue":{"href":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/issues/2"},"comments":{"href":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/issues/2/comments"},"review_comments":{"href":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/pulls/2/comments"},"review_comment":{"href":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/pulls/2/commits"},"statuses":{"href":"https://api.github.com/repos/dashevo/dark-gravity-wave-js/statuses/b93037ca870d5fac94012f480eeac326e4dbfb13"}},"author_association":"NONE"}}
{"actor":{"display_login":"pvrooyen"}}