{"action":"created","comment":{"url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/pulls/comments/83229069","pull_request_review_id":4085324,"id":83229069,"diff_hunk":"@@ -0,0 +1,233 @@\n+#!/usr/bin/env python2\n+# Copyright (c) 2014-2015 The Bitcoin Core developers\n+# Copyright (c) 2015-2016 The Bitcoin Unlimited developers\n+# Copyright (c) 2016 The Bitcoin developers\n+# Distributed under the MIT software license, see the accompanying\n+# file COPYING or http://www.opensource.org/licenses/mit-license.php.\n+# MVHF-BU\n+\"\"\"\n+Exercise the auto backup wallet code.  Ported from walletbackup.sh.\n+\n+Test case is:\n+4 nodes. 1 2 and 3 send transactions between each other, fourth node is a miner\n+5th node does no transactions and only tests the -disablewallet\n+.\n+1 2 3 each mine a block to start, then\n+Miner creates 100 blocks so 1 2 3 each have 50 mature coins to spend.\n+Then 5 iterations of 1/2/3 sending coins amongst\n+themselves to get transactions in the wallets,\n+and the miner mining one block.\n+\n+Then 5 more iterations of transactions and mining a block.\n+\n+Miner then generates 101 more blocks, so any\n+transaction fees paid mature.\n+\n+The node config sets wallets to automatically back up at block 114.\n+\n+Balances are saved for sanity check:\n+  Sum(1,2,3,4 balances) == 114*50\n+\n+Then 5 more iterations of transactions and mining a block.\n+\n+Miner then generates 101 more blocks, so any\n+transaction fees paid mature.\n+\n+1/2/3 are shutdown, and their wallets erased.\n+Then restored using wallet.dat.auto.114.bak backup.\n+Sanity check to confirm 1/2/3 balances match the 114 block balances.\n+Sanity check to confirm 5th node does NOT perform the auto backup\n+and that the debug.log contains a conflict message\n+\"\"\"\n+\n+import os\n+from test_framework.test_framework import BitcoinTestFramework\n+from test_framework.util import *\n+from random import randint\n+import logging\n+logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.INFO)\n+\n+class WalletBackupTest(BitcoinTestFramework):\n+\n+    def setup_chain(self):\n+        logging.info(\"Initializing test directory \"+self.options.tmpdir)\n+        initialize_chain_clean(self.options.tmpdir, 5)\n+\n+    # This mirrors how the network was setup in the bash test\n+    def setup_network(self, split=False):\n+        # nodes 1, 2,3 are spenders, let's give them a keypool=100\n+        # and configure option autobackupwalletpath enabled for block 114\n+\n+        logging.info(\"Starting nodes\")\n+\n+        extra_args = [\n+            [\"-keypool=100\",\n+                \"-autobackupwalletpath=\"+self.options.tmpdir+\"/node0\",\n+                \"-autobackupblock=114\"],\n+            [\"-keypool=100\",\n+                \"-autobackupwalletpath=\"+self.options.tmpdir+\"/node1\",\n+                \"-autobackupblock=114\"],\n+            [\"-keypool=100\",\n+                \"-autobackupwalletpath=\"+self.options.tmpdir+\"/node2\",\n+                \"-autobackupblock=114\"],\n+            [],\n+            [\"-disablewallet\",\n+                \"-autobackupwalletpath=\"+self.options.tmpdir+\"/node4\",\n+                \"-autobackupblock=114\"]]\n+\n+        self.nodes = start_nodes(5, self.options.tmpdir, extra_args)\n+        connect_nodes(self.nodes[0], 3)\n+        connect_nodes(self.nodes[1], 3)\n+        connect_nodes(self.nodes[2], 3)\n+        connect_nodes(self.nodes[2], 0)\n+        connect_nodes(self.nodes[4], 3)\n+        self.is_network_split=False\n+        self.sync_all()\n+\n+    def one_send(self, from_node, to_address):\n+        if (randint(1,2) == 1):\n+            amount = Decimal(randint(1,10)) / Decimal(10)\n+            self.nodes[from_node].sendtoaddress(to_address, amount)\n+\n+    def do_one_round(self):\n+        a0 = self.nodes[0].getnewaddress()\n+        a1 = self.nodes[1].getnewaddress()\n+        a2 = self.nodes[2].getnewaddress()\n+\n+        self.one_send(0, a1)\n+        self.one_send(0, a2)\n+        self.one_send(1, a0)\n+        self.one_send(1, a2)\n+        self.one_send(2, a0)\n+        self.one_send(2, a1)\n+\n+        # Have the miner (node3) mine a block.\n+        # Must sync mempools before mining.\n+        sync_mempools(self.nodes)\n+        self.nodes[3].generate(1)\n+\n+    # As above, this mirrors the original bash test.\n+    def start_three(self):\n+\n+        self.nodes[0] = start_node(0, self.options.tmpdir)\n+        self.nodes[1] = start_node(1, self.options.tmpdir)\n+        self.nodes[2] = start_node(2, self.options.tmpdir)\n+\n+        connect_nodes(self.nodes[0], 3)\n+        connect_nodes(self.nodes[1], 3)\n+        connect_nodes(self.nodes[2], 3)\n+        connect_nodes(self.nodes[2], 0)\n+\n+    def stop_three(self):\n+        stop_node(self.nodes[0], 0)\n+        stop_node(self.nodes[1], 1)\n+        stop_node(self.nodes[2], 2)\n+\n+    def erase_three(self):\n+        os.remove(self.options.tmpdir + \"/node0/regtest/wallet.dat\")","path":"qa/rpc-tests/walletbackupauto.py","position":null,"original_position":127,"commit_id":"4dc4147ef5b16aa8ad9ac6e9c4391c450ffe5f0b","original_commit_id":"86ca20d56f7e660a03d5416a21fdf13c7bc0738b","user":{"login":"marlengit","id":7789061,"avatar_url":"https://avatars.githubusercontent.com/u/7789061?v=3","gravatar_id":"","url":"https://api.github.com/users/marlengit","html_url":"https://github.com/marlengit","followers_url":"https://api.github.com/users/marlengit/followers","following_url":"https://api.github.com/users/marlengit/following{/other_user}","gists_url":"https://api.github.com/users/marlengit/gists{/gist_id}","starred_url":"https://api.github.com/users/marlengit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marlengit/subscriptions","organizations_url":"https://api.github.com/users/marlengit/orgs","repos_url":"https://api.github.com/users/marlengit/repos","events_url":"https://api.github.com/users/marlengit/events{/privacy}","received_events_url":"https://api.github.com/users/marlengit/received_events","type":"User","site_admin":false},"body":"updated","created_at":"2016-10-13T14:29:29Z","updated_at":"2016-10-13T14:29:29Z","html_url":"https://github.com/BTCfork/hardfork_prototype_1_mvf-bu/pull/10#discussion_r83229069","pull_request_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/pulls/10","_links":{"self":{"href":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/pulls/comments/83229069"},"html":{"href":"https://github.com/BTCfork/hardfork_prototype_1_mvf-bu/pull/10#discussion_r83229069"},"pull_request":{"href":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/pulls/10"}}},"pull_request":{"url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/pulls/10","id":88656593,"html_url":"https://github.com/BTCfork/hardfork_prototype_1_mvf-bu/pull/10","diff_url":"https://github.com/BTCfork/hardfork_prototype_1_mvf-bu/pull/10.diff","patch_url":"https://github.com/BTCfork/hardfork_prototype_1_mvf-bu/pull/10.patch","issue_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/issues/10","number":10,"state":"open","locked":false,"title":"Feature/wallet backup auto","user":{"login":"marlengit","id":7789061,"avatar_url":"https://avatars.githubusercontent.com/u/7789061?v=3","gravatar_id":"","url":"https://api.github.com/users/marlengit","html_url":"https://github.com/marlengit","followers_url":"https://api.github.com/users/marlengit/followers","following_url":"https://api.github.com/users/marlengit/following{/other_user}","gists_url":"https://api.github.com/users/marlengit/gists{/gist_id}","starred_url":"https://api.github.com/users/marlengit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marlengit/subscriptions","organizations_url":"https://api.github.com/users/marlengit/orgs","repos_url":"https://api.github.com/users/marlengit/repos","events_url":"https://api.github.com/users/marlengit/events{/privacy}","received_events_url":"https://api.github.com/users/marlengit/received_events","type":"User","site_admin":false},"body":"This is the auto wallet backup feature. There are 2 command line parameters to enable the feature:\r\n-autobackupwalletpath=/mybackupfolder\r\n-autobackupblock=1234\r\n\r\nThe autobackupwalletpath may be a directory or file name. A hash character (#) in the string will be replaced with the block number specified. If the path is a directory then the default filename will be used which is the existing wallet file name with suffix \".auto.#.bak\".\r\n\r\nThe autobackupblock number is optional and will default to the MVHF fork block. At the moment this is hard coded and so this section will need to be updated when the hard fork is better defined. Beyond the hard fork users could use this parameter to perform an auto backup at any future block number.  \r\n\r\nIf used with -disablewallet the feature is non-functional and outputs a conflict message to debug.log.\r\n\r\nThere is a regtest that can be run for this feature : qa/pull-tester/rpc-tests.py walletbackupauto\r\n\r\n","created_at":"2016-10-10T12:48:21Z","updated_at":"2016-10-13T14:29:29Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6a27881ad28e7beb0657fd69c21d9c49ac9df9ec","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/pulls/10/commits","review_comments_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/pulls/10/comments","review_comment_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/pulls/comments{/number}","comments_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/issues/10/comments","statuses_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/statuses/4dc4147ef5b16aa8ad9ac6e9c4391c450ffe5f0b","head":{"label":"marlengit:feature/wallet_backup_auto","ref":"feature/wallet_backup_auto","sha":"4dc4147ef5b16aa8ad9ac6e9c4391c450ffe5f0b","user":{"login":"marlengit","id":7789061,"avatar_url":"https://avatars.githubusercontent.com/u/7789061?v=3","gravatar_id":"","url":"https://api.github.com/users/marlengit","html_url":"https://github.com/marlengit","followers_url":"https://api.github.com/users/marlengit/followers","following_url":"https://api.github.com/users/marlengit/following{/other_user}","gists_url":"https://api.github.com/users/marlengit/gists{/gist_id}","starred_url":"https://api.github.com/users/marlengit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marlengit/subscriptions","organizations_url":"https://api.github.com/users/marlengit/orgs","repos_url":"https://api.github.com/users/marlengit/repos","events_url":"https://api.github.com/users/marlengit/events{/privacy}","received_events_url":"https://api.github.com/users/marlengit/received_events","type":"User","site_admin":false},"repo":{"id":69654898,"name":"hardfork_prototype_1_mvf-bu","full_name":"marlengit/hardfork_prototype_1_mvf-bu","owner":{"login":"marlengit","id":7789061,"avatar_url":"https://avatars.githubusercontent.com/u/7789061?v=3","gravatar_id":"","url":"https://api.github.com/users/marlengit","html_url":"https://github.com/marlengit","followers_url":"https://api.github.com/users/marlengit/followers","following_url":"https://api.github.com/users/marlengit/following{/other_user}","gists_url":"https://api.github.com/users/marlengit/gists{/gist_id}","starred_url":"https://api.github.com/users/marlengit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marlengit/subscriptions","organizations_url":"https://api.github.com/users/marlengit/orgs","repos_url":"https://api.github.com/users/marlengit/repos","events_url":"https://api.github.com/users/marlengit/events{/privacy}","received_events_url":"https://api.github.com/users/marlengit/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/marlengit/hardfork_prototype_1_mvf-bu","description":"For work on the MVF prototype","fork":true,"url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu","forks_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/forks","keys_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/keys{/key_id}","collaborators_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/teams","hooks_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/hooks","issue_events_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/issues/events{/number}","events_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/events","assignees_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/assignees{/user}","branches_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/branches{/branch}","tags_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/tags","blobs_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/git/refs{/sha}","trees_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/git/trees{/sha}","statuses_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/statuses/{sha}","languages_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/languages","stargazers_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/stargazers","contributors_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/contributors","subscribers_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/subscribers","subscription_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/subscription","commits_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/commits{/sha}","git_commits_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/git/commits{/sha}","comments_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/comments{/number}","issue_comment_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/issues/comments{/number}","contents_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/contents/{+path}","compare_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/compare/{base}...{head}","merges_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/merges","archive_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/downloads","issues_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/issues{/number}","pulls_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/pulls{/number}","milestones_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/milestones{/number}","notifications_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/labels{/name}","releases_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/releases{/id}","deployments_url":"https://api.github.com/repos/marlengit/hardfork_prototype_1_mvf-bu/deployments","created_at":"2016-09-30T09:47:29Z","updated_at":"2016-09-30T09:47:34Z","pushed_at":"2016-10-13T14:02:46Z","git_url":"git://github.com/marlengit/hardfork_prototype_1_mvf-bu.git","ssh_url":"git@github.com:marlengit/hardfork_prototype_1_mvf-bu.git","clone_url":"https://github.com/marlengit/hardfork_prototype_1_mvf-bu.git","svn_url":"https://github.com/marlengit/hardfork_prototype_1_mvf-bu","homepage":null,"size":55596,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"BTCfork:master","ref":"master","sha":"366364f5ec9a6b97f550851732b6edb49e380658","user":{"login":"BTCfork","id":20826420,"avatar_url":"https://avatars.githubusercontent.com/u/20826420?v=3","gravatar_id":"","url":"https://api.github.com/users/BTCfork","html_url":"https://github.com/BTCfork","followers_url":"https://api.github.com/users/BTCfork/followers","following_url":"https://api.github.com/users/BTCfork/following{/other_user}","gists_url":"https://api.github.com/users/BTCfork/gists{/gist_id}","starred_url":"https://api.github.com/users/BTCfork/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BTCfork/subscriptions","organizations_url":"https://api.github.com/users/BTCfork/orgs","repos_url":"https://api.github.com/users/BTCfork/repos","events_url":"https://api.github.com/users/BTCfork/events{/privacy}","received_events_url":"https://api.github.com/users/BTCfork/received_events","type":"Organization","site_admin":false},"repo":{"id":67009886,"name":"hardfork_prototype_1_mvf-bu","full_name":"BTCfork/hardfork_prototype_1_mvf-bu","owner":{"login":"BTCfork","id":20826420,"avatar_url":"https://avatars.githubusercontent.com/u/20826420?v=3","gravatar_id":"","url":"https://api.github.com/users/BTCfork","html_url":"https://github.com/BTCfork","followers_url":"https://api.github.com/users/BTCfork/followers","following_url":"https://api.github.com/users/BTCfork/following{/other_user}","gists_url":"https://api.github.com/users/BTCfork/gists{/gist_id}","starred_url":"https://api.github.com/users/BTCfork/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BTCfork/subscriptions","organizations_url":"https://api.github.com/users/BTCfork/orgs","repos_url":"https://api.github.com/users/BTCfork/repos","events_url":"https://api.github.com/users/BTCfork/events{/privacy}","received_events_url":"https://api.github.com/users/BTCfork/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/BTCfork/hardfork_prototype_1_mvf-bu","description":"For work on the MVF prototype","fork":false,"url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu","forks_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/forks","keys_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/keys{/key_id}","collaborators_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/teams","hooks_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/hooks","issue_events_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/issues/events{/number}","events_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/events","assignees_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/assignees{/user}","branches_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/branches{/branch}","tags_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/tags","blobs_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/git/refs{/sha}","trees_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/git/trees{/sha}","statuses_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/statuses/{sha}","languages_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/languages","stargazers_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/stargazers","contributors_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/contributors","subscribers_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/subscribers","subscription_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/subscription","commits_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/commits{/sha}","git_commits_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/git/commits{/sha}","comments_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/comments{/number}","issue_comment_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/issues/comments{/number}","contents_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/contents/{+path}","compare_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/compare/{base}...{head}","merges_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/merges","archive_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/downloads","issues_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/issues{/number}","pulls_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/pulls{/number}","milestones_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/milestones{/number}","notifications_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/labels{/name}","releases_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/releases{/id}","deployments_url":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/deployments","created_at":"2016-08-31T06:28:21Z","updated_at":"2016-10-01T17:51:26Z","pushed_at":"2016-10-13T14:02:47Z","git_url":"git://github.com/BTCfork/hardfork_prototype_1_mvf-bu.git","ssh_url":"git@github.com:BTCfork/hardfork_prototype_1_mvf-bu.git","clone_url":"https://github.com/BTCfork/hardfork_prototype_1_mvf-bu.git","svn_url":"https://github.com/BTCfork/hardfork_prototype_1_mvf-bu","homepage":null,"size":55579,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":2,"forks":2,"open_issues":2,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/pulls/10"},"html":{"href":"https://github.com/BTCfork/hardfork_prototype_1_mvf-bu/pull/10"},"issue":{"href":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/issues/10"},"comments":{"href":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/issues/10/comments"},"review_comments":{"href":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/pulls/10/comments"},"review_comment":{"href":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/pulls/10/commits"},"statuses":{"href":"https://api.github.com/repos/BTCfork/hardfork_prototype_1_mvf-bu/statuses/4dc4147ef5b16aa8ad9ac6e9c4391c450ffe5f0b"}}}}
{"actor":{"display_login":"marlengit"}}