{"action":"created","comment":{"url":"https://api.github.com/repos/btcsuite/btcd/pulls/comments/37707692","id":37707692,"diff_hunk":"@@ -632,12 +632,12 @@ The following is an overview of the RPC methods which are implemented by btcd, b\n |   |   |\r\n |---|---|\r\n |Method|searchrawtransactions|\r\n-|Parameters|1. address (string, required) - bitcoin address <br /> 2. verbose (int, optional, default=true) - specifies the transaction is returned as a JSON object instead of hex-encoded string <br />3. skip (int, optional, default=0) - the number of leading transactions to leave out of the final response <br /> 4. count (int, optional, default=100) - the maximum number of transactions to return|\r\n+|Parameters|1. address (string, required) - bitcoin address <br /> 2. verbose (int, optional, default=true) - specifies the transaction is returned as a JSON object instead of hex-encoded string <br />3. skip (int, optional, default=0) - the number of leading transactions to leave out of the final response <br /> 4. count (int, optional, default=100) - the maximum number of transactions to return <br /> 5. (vinextra numeric, optional, default=0) - Specify that extra data from previous output will be returned in vin|\r\n |Description|Returns raw data for transactions involving the passed address. Returned transactions are pulled from both the database, and transactions currently in the mempool. Transactions pulled from the mempool will have the `\"confirmations\"` field set to 0. Usage of this RPC requires the optional `--addrindex` flag to be activated, otherwise all responses will simply return with an error stating the address index has not yet been built up. Similarly, until the address index has caught up with the current best height, all requests will return an error response in order to avoid serving stale data.|\r\n |Returns (verbose=0)|`[ (json array of strings)` <br/>&nbsp;&nbsp; `\"serializedtx\", ... hex-encoded bytes of the serialized transaction` <br/>`]` |\r\n-|Returns (verbose=1)|`[ (array of json objects)` <br/> &nbsp;&nbsp; `{ (json object)`<br />&nbsp;&nbsp;`\"hex\": \"data\",  (string) hex-encoded transaction`<br />&nbsp;&nbsp;`\"txid\": \"hash\",  (string) the hash of the transaction`<br />&nbsp;&nbsp;`\"version\": n,  (numeric) the transaction version`<br />&nbsp;&nbsp;`\"locktime\": n,  (numeric) the transaction lock time`<br />&nbsp;&nbsp;`\"vin\": [  (array of json objects) the transaction inputs as json objects`<br />&nbsp;&nbsp;<font color=\"orange\">For coinbase transactions:</font><br />&nbsp;&nbsp;&nbsp;&nbsp;`{ (json object)`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"coinbase\": \"data\",  (string) the hex-dencoded bytes of the signature script`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"sequence\": n,  (numeric) the script sequence number`<br />&nbsp;&nbsp;&nbsp;&nbsp;`}`<br />&nbsp;&nbsp;<font color=\"orange\">For non-coinbase transactions:</font><br />&nbsp;&nbsp;&nbsp;&nbsp;`{ (json object)`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"txid\": \"hash\", (string) the hash of the origin transaction`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"vout\": n, (numeric) the index of the output being redeemed from the origin transaction`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"scriptSig\": { (json object) the signature script used to redeem the origin transaction`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"asm\": \"asm\", (string) disassembly of the script`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"hex\": \"data\",  (string) hex-encoded bytes of the script`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`}`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"sequence\": n,  (numeric) the script sequence number`<br />&nbsp;&nbsp;&nbsp;&nbsp;`}, ...`<br />&nbsp;&nbsp;`]`<br />&nbsp;&nbsp;`\"vout\": [  (array of json objects) the transaction outputs as json objects`<br />&nbsp;&nbsp;&nbsp;&nbsp;`{ (json object)`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"value\": n, (numeric) the value in BTC`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"n\": n, (numeric) the index of this transaction output`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"scriptPubKey\": { (json object) the public key script used to pay coins`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"asm\": \"asm\",  (string) disassembly of the script`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"hex\": \"data\", (string) hex-encoded bytes of the script`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"reqSigs\": n,  (numeric) the number of required signatures`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"type\": \"scripttype\" (string) the type of the script (e.g. 'pubkeyhash')`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"addresses\": [ (json array of string) the bitcoin addresses associated with this output`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"address\",  (string) the bitcoin address`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`...`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`]`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`}`<br />&nbsp;&nbsp;&nbsp;&nbsp;`}, ...`<br /> &nbsp;&nbsp;&nbsp;`]`<br />&nbsp;&nbsp; `\"blockhash\":\"hash\" Hash of the block the transaction is part of.` <br /> &nbsp;&nbsp; `\"confirmations\":n,  Number of numeric confirmations of block.` <br /> &nbsp;&nbsp;&nbsp;`\"time\":t, Transaction time in seconds since the epoch.` <br /> &nbsp;&nbsp;&nbsp;`\"blocktime\":t, Block time in seconds since the epoch.`<br />`},...`<br/> `]`|\r\n+|Returns (verbose=1)|`[ (array of json objects)` <br/> &nbsp;&nbsp; `{ (json object)`<br />&nbsp;&nbsp;`\"hex\": \"data\",  (string) hex-encoded transaction`<br />&nbsp;&nbsp;`\"txid\": \"hash\",  (string) the hash of the transaction`<br />&nbsp;&nbsp;`\"version\": n,  (numeric) the transaction version`<br />&nbsp;&nbsp;`\"locktime\": n,  (numeric) the transaction lock time`<br />&nbsp;&nbsp;`\"vin\": [  (array of json objects) the transaction inputs as json objects`<br />&nbsp;&nbsp;<font color=\"orange\">For coinbase transactions:</font><br />&nbsp;&nbsp;&nbsp;&nbsp;`{ (json object)`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"coinbase\": \"data\",  (string) the hex-dencoded bytes of the signature script`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"sequence\": n,  (numeric) the script sequence number`<br />&nbsp;&nbsp;&nbsp;&nbsp;`}`<br />&nbsp;&nbsp;<font color=\"orange\">For non-coinbase transactions:</font><br />&nbsp;&nbsp;&nbsp;&nbsp;`{ (json object)`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"txid\": \"hash\", (string) the hash of the origin transaction`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"vout\": n, (numeric) the index of the output being redeemed from the origin transaction`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"scriptSig\": { (json object) the signature script used to redeem the origin transaction`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"asm\": \"asm\", (string) disassembly of the script`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"hex\": \"data\",  (string) hex-encoded bytes of the script`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`}`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"prevOut\": { (json object) Data from the origin transaction output with index vout.`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"addresses\": [\"value\",...], (array of string) previous output addresses`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"value\": n.nnn,             (numeric)         previous output value`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`}`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"sequence\": n,  (numeric) the script sequence number`<br />&nbsp;&nbsp;&nbsp;&nbsp;`}, ...`<br />&nbsp;&nbsp;`]`<br />&nbsp;&nbsp;`\"vout\": [  (array of json objects) the transaction outputs as json objects`<br />&nbsp;&nbsp;&nbsp;&nbsp;`{ (json object)`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"value\": n, (numeric) the value in BTC`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"n\": n, (numeric) the index of this transaction output`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"scriptPubKey\": { (json object) the public key script used to pay coins`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"asm\": \"asm\",  (string) disassembly of the script`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"hex\": \"data\", (string) hex-encoded bytes of the script`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"reqSigs\": n,  (numeric) the number of required signatures`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"type\": \"scripttype\" (string) the type of the script (e.g. 'pubkeyhash')`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"addresses\": [ (json array of string) the bitcoin addresses associated with this output`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`\"address\",  (string) the bitcoin address`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`...`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`]`<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`}`<br />&nbsp;&nbsp;&nbsp;&nbsp;`}, ...`<br /> &nbsp;&nbsp;&nbsp;`]`<br />&nbsp;&nbsp; `\"blockhash\":\"hash\" Hash of the block the transaction is part of.` <br /> &nbsp;&nbsp; `\"confirmations\":n,  Number of numeric confirmations of block.` <br /> &nbsp;&nbsp;&nbsp;`\"time\":t, Transaction time in seconds since the epoch.` <br /> &nbsp;&nbsp;&nbsp;`\"blocktime\":t, Block time in seconds since the epoch.`<br />`},...`<br/> `]`|\r","path":"docs/json_rpc_api.md","position":null,"original_position":9,"commit_id":"43774fe6bb034c89d3a36bc7a5f0fce93139c999","original_commit_id":"c51e5f5a916112069154da5b3fe8d49dca6e7ecb","user":{"login":"dan-da","id":5110592,"avatar_url":"https://avatars.githubusercontent.com/u/5110592?v=3","gravatar_id":"","url":"https://api.github.com/users/dan-da","html_url":"https://github.com/dan-da","followers_url":"https://api.github.com/users/dan-da/followers","following_url":"https://api.github.com/users/dan-da/following{/other_user}","gists_url":"https://api.github.com/users/dan-da/gists{/gist_id}","starred_url":"https://api.github.com/users/dan-da/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dan-da/subscriptions","organizations_url":"https://api.github.com/users/dan-da/orgs","repos_url":"https://api.github.com/users/dan-da/repos","events_url":"https://api.github.com/users/dan-da/events{/privacy}","received_events_url":"https://api.github.com/users/dan-da/received_events","type":"User","site_admin":false},"body":"done.","created_at":"2015-08-23T17:03:28Z","updated_at":"2015-08-23T17:03:28Z","html_url":"https://github.com/btcsuite/btcd/pull/487#discussion_r37707692","pull_request_url":"https://api.github.com/repos/btcsuite/btcd/pulls/487","_links":{"self":{"href":"https://api.github.com/repos/btcsuite/btcd/pulls/comments/37707692"},"html":{"href":"https://github.com/btcsuite/btcd/pull/487#discussion_r37707692"},"pull_request":{"href":"https://api.github.com/repos/btcsuite/btcd/pulls/487"}}},"pull_request":{"url":"https://api.github.com/repos/btcsuite/btcd/pulls/487","id":42954156,"html_url":"https://github.com/btcsuite/btcd/pull/487","diff_url":"https://github.com/btcsuite/btcd/pull/487.diff","patch_url":"https://github.com/btcsuite/btcd/pull/487.patch","issue_url":"https://api.github.com/repos/btcsuite/btcd/issues/487","number":487,"state":"open","locked":false,"title":"Optionally displays vin.prevOut {...} for searchrawtransactions API only.","user":{"login":"dan-da","id":5110592,"avatar_url":"https://avatars.githubusercontent.com/u/5110592?v=3","gravatar_id":"","url":"https://api.github.com/users/dan-da","html_url":"https://github.com/dan-da","followers_url":"https://api.github.com/users/dan-da/followers","following_url":"https://api.github.com/users/dan-da/following{/other_user}","gists_url":"https://api.github.com/users/dan-da/gists{/gist_id}","starred_url":"https://api.github.com/users/dan-da/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dan-da/subscriptions","organizations_url":"https://api.github.com/users/dan-da/orgs","repos_url":"https://api.github.com/users/dan-da/repos","events_url":"https://api.github.com/users/dan-da/events{/privacy}","received_events_url":"https://api.github.com/users/dan-da/received_events","type":"User","site_admin":false},"body":"For background on this pull request, see https://github.com/btcsuite/btcd/issues/485.\r\n\r\n## Implementation overview\r\n\r\n* searchrawtransactions is modified to return a new type SearchRawTransactionsResult which includes new type VinPrevOut.\r\n* If optional flag vinextra=1 then vin.prevOut struct is returned.  Else vin has same structure as before and no extra processing (to find previous outputs) is performed.\r\n* mempool.fetchInputTransactions is modified to accept a flag includeSpent.  This enables createVinListPrevOut() to retrieve previous output (spent or not) from mempool or db.\r\n* ExtractPkScriptAddrs() is called on the PkScript of the corresponding previous output, if any\r\n* help is modified to display new argument vinextra and new output vin.prevOut.\r\n* test cases were modified to include additional test case using vinextra argument and also test cases for marshalling VinPrevOut.  test coverage in btcjson remains 100%.\r\n\r\n## Testing done\r\nI've run a few different addresses against it on both testnet and mainnet, without problems.   Also ran goclean.sh script and all tests pass.\r\n\r\n## Commentary\r\nThis code is working for my application's use case.  Hopefully it can be incorporated into mainline.\r\n\r\nI have one additional searchrawtransctions tweak to add for my use case, which is filtering out inputs/outputs that do not match the input address.  This should result in a large performance gain and reduction in unnecessary data sent over the wire.  I plan to submit that as a separate pull request when ready.\r\n\r\n## Usage\r\n<pre>\r\nbtcctl help searchrawtransactions\r\n...\r\nArguments:\r\n...\r\n4. count    (numeric, optional, default=100) The maximum number of transactions to return\r\n5. vinextra (numeric, optional, default=0)   Specify that extra data from previous output will be returned in vin\r\n...\r\n  \"vout\": n,                   (numeric)         The index of the output being redeemed from the origin transaction (non-coinbase txns only)\r\n  \"scriptSig\": {               (object)          The signature script used to redeem the origin transaction as a JSON object (non-coinbase txns only)\r\n   \"asm\": \"value\",             (string)          Disassembly of the script\r\n   \"hex\": \"value\",             (string)          Hex-encoded bytes of the script\r\n  },\r\n  \"prevOut\": {                 (object)          Data from the origin transaction output with index vout.\r\n   \"addresses\": [\"value\",...], (array of string) previous output addresses\r\n   \"value\": n.nnn,             (numeric)         previous output value\r\n  },\r\n  \"sequence\": n,               (numeric)         The script sequence number\r\n</pre>\r\n\r\n### Example Output, case: flag vinextra = 1\r\n<pre>\r\n$ btcctl searchrawtransactions mpC5xd5UGPmteFbpNfBD2vfhYmb8jWHa1u 1 0 100 1\r\n    \"vin\": [   \r\n      {\r\n        \"txid\": \"6801cb417573220564c3cec34dd39a0879e24ea75a7ca1ba6a3b8c11c1c6c6b3\",\r\n        \"vout\": 0,\r\n        \"scriptSig\": {\r\n          \"asm\": \"...\",\r\n          \"hex\": \"...\"\r\n        },\r\n        \"prevOut\": {\r\n          \"addresses\": [\r\n            \"mpC5xd5UGPmteFbpNfBD2vfhYmb8jWHa1u\"\r\n          ],\r\n          \"value\": 50\r\n        },\r\n        \"sequence\": 4294967295\r\n      }\r\n    ],\r\n</pre>\r\n\r\n### Example Output, case: flag vinextra = 0   ( or omitted )\r\n<pre>\r\n$ btcctl searchrawtransactions mpC5xd5UGPmteFbpNfBD2vfhYmb8jWHa1u 1 0 100\r\n...\r\n    \"vin\": [   \r\n      {\r\n        \"txid\": \"6801cb417573220564c3cec34dd39a0879e24ea75a7ca1ba6a3b8c11c1c6c6b3\",\r\n        \"vout\": 0,\r\n        \"scriptSig\": {\r\n          \"asm\": \"...\",\r\n          \"hex\": \"...\"\r\n        },\r\n        \"sequence\": 4294967295\r\n      }\r\n    ],\r\n</pre>\r\n\r\n","created_at":"2015-08-20T17:12:05Z","updated_at":"2015-08-23T17:03:28Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9038e582b1908b6d2f82726d27acd7edfd7fc4ed","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/btcsuite/btcd/pulls/487/commits","review_comments_url":"https://api.github.com/repos/btcsuite/btcd/pulls/487/comments","review_comment_url":"https://api.github.com/repos/btcsuite/btcd/pulls/comments{/number}","comments_url":"https://api.github.com/repos/btcsuite/btcd/issues/487/comments","statuses_url":"https://api.github.com/repos/btcsuite/btcd/statuses/43774fe6bb034c89d3a36bc7a5f0fce93139c999","head":{"label":"dan-da:vin_prevout_branch","ref":"vin_prevout_branch","sha":"43774fe6bb034c89d3a36bc7a5f0fce93139c999","user":{"login":"dan-da","id":5110592,"avatar_url":"https://avatars.githubusercontent.com/u/5110592?v=3","gravatar_id":"","url":"https://api.github.com/users/dan-da","html_url":"https://github.com/dan-da","followers_url":"https://api.github.com/users/dan-da/followers","following_url":"https://api.github.com/users/dan-da/following{/other_user}","gists_url":"https://api.github.com/users/dan-da/gists{/gist_id}","starred_url":"https://api.github.com/users/dan-da/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dan-da/subscriptions","organizations_url":"https://api.github.com/users/dan-da/orgs","repos_url":"https://api.github.com/users/dan-da/repos","events_url":"https://api.github.com/users/dan-da/events{/privacy}","received_events_url":"https://api.github.com/users/dan-da/received_events","type":"User","site_admin":false},"repo":{"id":40908855,"name":"btcd","full_name":"dan-da/btcd","owner":{"login":"dan-da","id":5110592,"avatar_url":"https://avatars.githubusercontent.com/u/5110592?v=3","gravatar_id":"","url":"https://api.github.com/users/dan-da","html_url":"https://github.com/dan-da","followers_url":"https://api.github.com/users/dan-da/followers","following_url":"https://api.github.com/users/dan-da/following{/other_user}","gists_url":"https://api.github.com/users/dan-da/gists{/gist_id}","starred_url":"https://api.github.com/users/dan-da/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dan-da/subscriptions","organizations_url":"https://api.github.com/users/dan-da/orgs","repos_url":"https://api.github.com/users/dan-da/repos","events_url":"https://api.github.com/users/dan-da/events{/privacy}","received_events_url":"https://api.github.com/users/dan-da/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/dan-da/btcd","description":"An alternative full node bitcoin implementation written in Go (golang)","fork":true,"url":"https://api.github.com/repos/dan-da/btcd","forks_url":"https://api.github.com/repos/dan-da/btcd/forks","keys_url":"https://api.github.com/repos/dan-da/btcd/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dan-da/btcd/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dan-da/btcd/teams","hooks_url":"https://api.github.com/repos/dan-da/btcd/hooks","issue_events_url":"https://api.github.com/repos/dan-da/btcd/issues/events{/number}","events_url":"https://api.github.com/repos/dan-da/btcd/events","assignees_url":"https://api.github.com/repos/dan-da/btcd/assignees{/user}","branches_url":"https://api.github.com/repos/dan-da/btcd/branches{/branch}","tags_url":"https://api.github.com/repos/dan-da/btcd/tags","blobs_url":"https://api.github.com/repos/dan-da/btcd/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dan-da/btcd/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dan-da/btcd/git/refs{/sha}","trees_url":"https://api.github.com/repos/dan-da/btcd/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dan-da/btcd/statuses/{sha}","languages_url":"https://api.github.com/repos/dan-da/btcd/languages","stargazers_url":"https://api.github.com/repos/dan-da/btcd/stargazers","contributors_url":"https://api.github.com/repos/dan-da/btcd/contributors","subscribers_url":"https://api.github.com/repos/dan-da/btcd/subscribers","subscription_url":"https://api.github.com/repos/dan-da/btcd/subscription","commits_url":"https://api.github.com/repos/dan-da/btcd/commits{/sha}","git_commits_url":"https://api.github.com/repos/dan-da/btcd/git/commits{/sha}","comments_url":"https://api.github.com/repos/dan-da/btcd/comments{/number}","issue_comment_url":"https://api.github.com/repos/dan-da/btcd/issues/comments{/number}","contents_url":"https://api.github.com/repos/dan-da/btcd/contents/{+path}","compare_url":"https://api.github.com/repos/dan-da/btcd/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dan-da/btcd/merges","archive_url":"https://api.github.com/repos/dan-da/btcd/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dan-da/btcd/downloads","issues_url":"https://api.github.com/repos/dan-da/btcd/issues{/number}","pulls_url":"https://api.github.com/repos/dan-da/btcd/pulls{/number}","milestones_url":"https://api.github.com/repos/dan-da/btcd/milestones{/number}","notifications_url":"https://api.github.com/repos/dan-da/btcd/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dan-da/btcd/labels{/name}","releases_url":"https://api.github.com/repos/dan-da/btcd/releases{/id}","created_at":"2015-08-17T16:08:14Z","updated_at":"2015-08-17T16:08:15Z","pushed_at":"2015-08-23T17:01:05Z","git_url":"git://github.com/dan-da/btcd.git","ssh_url":"git@github.com:dan-da/btcd.git","clone_url":"https://github.com/dan-da/btcd.git","svn_url":"https://github.com/dan-da/btcd","homepage":"https://github.com/btcsuite/btcd/blob/master/docs/README.md","size":9276,"stargazers_count":0,"watchers_count":0,"language":"Go","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":"btcsuite:master","ref":"master","sha":"2441120b55696b5175ff128259a30283f59155ba","user":{"login":"btcsuite","id":10235229,"avatar_url":"https://avatars.githubusercontent.com/u/10235229?v=3","gravatar_id":"","url":"https://api.github.com/users/btcsuite","html_url":"https://github.com/btcsuite","followers_url":"https://api.github.com/users/btcsuite/followers","following_url":"https://api.github.com/users/btcsuite/following{/other_user}","gists_url":"https://api.github.com/users/btcsuite/gists{/gist_id}","starred_url":"https://api.github.com/users/btcsuite/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/btcsuite/subscriptions","organizations_url":"https://api.github.com/users/btcsuite/orgs","repos_url":"https://api.github.com/users/btcsuite/repos","events_url":"https://api.github.com/users/btcsuite/events{/privacy}","received_events_url":"https://api.github.com/users/btcsuite/received_events","type":"Organization","site_admin":false},"repo":{"id":11931032,"name":"btcd","full_name":"btcsuite/btcd","owner":{"login":"btcsuite","id":10235229,"avatar_url":"https://avatars.githubusercontent.com/u/10235229?v=3","gravatar_id":"","url":"https://api.github.com/users/btcsuite","html_url":"https://github.com/btcsuite","followers_url":"https://api.github.com/users/btcsuite/followers","following_url":"https://api.github.com/users/btcsuite/following{/other_user}","gists_url":"https://api.github.com/users/btcsuite/gists{/gist_id}","starred_url":"https://api.github.com/users/btcsuite/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/btcsuite/subscriptions","organizations_url":"https://api.github.com/users/btcsuite/orgs","repos_url":"https://api.github.com/users/btcsuite/repos","events_url":"https://api.github.com/users/btcsuite/events{/privacy}","received_events_url":"https://api.github.com/users/btcsuite/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/btcsuite/btcd","description":"An alternative full node bitcoin implementation written in Go (golang)","fork":false,"url":"https://api.github.com/repos/btcsuite/btcd","forks_url":"https://api.github.com/repos/btcsuite/btcd/forks","keys_url":"https://api.github.com/repos/btcsuite/btcd/keys{/key_id}","collaborators_url":"https://api.github.com/repos/btcsuite/btcd/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/btcsuite/btcd/teams","hooks_url":"https://api.github.com/repos/btcsuite/btcd/hooks","issue_events_url":"https://api.github.com/repos/btcsuite/btcd/issues/events{/number}","events_url":"https://api.github.com/repos/btcsuite/btcd/events","assignees_url":"https://api.github.com/repos/btcsuite/btcd/assignees{/user}","branches_url":"https://api.github.com/repos/btcsuite/btcd/branches{/branch}","tags_url":"https://api.github.com/repos/btcsuite/btcd/tags","blobs_url":"https://api.github.com/repos/btcsuite/btcd/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/btcsuite/btcd/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/btcsuite/btcd/git/refs{/sha}","trees_url":"https://api.github.com/repos/btcsuite/btcd/git/trees{/sha}","statuses_url":"https://api.github.com/repos/btcsuite/btcd/statuses/{sha}","languages_url":"https://api.github.com/repos/btcsuite/btcd/languages","stargazers_url":"https://api.github.com/repos/btcsuite/btcd/stargazers","contributors_url":"https://api.github.com/repos/btcsuite/btcd/contributors","subscribers_url":"https://api.github.com/repos/btcsuite/btcd/subscribers","subscription_url":"https://api.github.com/repos/btcsuite/btcd/subscription","commits_url":"https://api.github.com/repos/btcsuite/btcd/commits{/sha}","git_commits_url":"https://api.github.com/repos/btcsuite/btcd/git/commits{/sha}","comments_url":"https://api.github.com/repos/btcsuite/btcd/comments{/number}","issue_comment_url":"https://api.github.com/repos/btcsuite/btcd/issues/comments{/number}","contents_url":"https://api.github.com/repos/btcsuite/btcd/contents/{+path}","compare_url":"https://api.github.com/repos/btcsuite/btcd/compare/{base}...{head}","merges_url":"https://api.github.com/repos/btcsuite/btcd/merges","archive_url":"https://api.github.com/repos/btcsuite/btcd/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/btcsuite/btcd/downloads","issues_url":"https://api.github.com/repos/btcsuite/btcd/issues{/number}","pulls_url":"https://api.github.com/repos/btcsuite/btcd/pulls{/number}","milestones_url":"https://api.github.com/repos/btcsuite/btcd/milestones{/number}","notifications_url":"https://api.github.com/repos/btcsuite/btcd/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/btcsuite/btcd/labels{/name}","releases_url":"https://api.github.com/repos/btcsuite/btcd/releases{/id}","created_at":"2013-08-06T18:10:52Z","updated_at":"2015-08-21T01:46:46Z","pushed_at":"2015-08-23T17:01:05Z","git_url":"git://github.com/btcsuite/btcd.git","ssh_url":"git@github.com:btcsuite/btcd.git","clone_url":"https://github.com/btcsuite/btcd.git","svn_url":"https://github.com/btcsuite/btcd","homepage":"https://github.com/btcsuite/btcd/blob/master/docs/README.md","size":19353,"stargazers_count":658,"watchers_count":658,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":137,"mirror_url":null,"open_issues_count":49,"forks":137,"open_issues":49,"watchers":658,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/btcsuite/btcd/pulls/487"},"html":{"href":"https://github.com/btcsuite/btcd/pull/487"},"issue":{"href":"https://api.github.com/repos/btcsuite/btcd/issues/487"},"comments":{"href":"https://api.github.com/repos/btcsuite/btcd/issues/487/comments"},"review_comments":{"href":"https://api.github.com/repos/btcsuite/btcd/pulls/487/comments"},"review_comment":{"href":"https://api.github.com/repos/btcsuite/btcd/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/btcsuite/btcd/pulls/487/commits"},"statuses":{"href":"https://api.github.com/repos/btcsuite/btcd/statuses/43774fe6bb034c89d3a36bc7a5f0fce93139c999"}}}}