{"action":"created","comment":{"url":"https://api.github.com/repos/namecoin/namecoin-core/pulls/comments/53564737","id":53564737,"diff_hunk":"@@ -668,3 +686,210 @@ bool WalletModel::saveReceiveRequest(const std::string &sAddress, const int64_t\n     else\n         return wallet->AddDestData(dest, key, sRequest);\n }\n+\n+bool WalletModel::nameAvailable(const QString &name)\n+{\n+    UniValue params (UniValue::VOBJ);\n+    UniValue res, array, isExpired;\n+\n+    const std::string strName = name.toStdString();\n+    params.push_back (Pair(\"name\", strName));\n+\n+    try {\n+        res = name_show( params, false);\n+    } catch (const UniValue& e) {\n+        return true;\n+    }\n+\n+    isExpired = find_value( res, \"expired\");\n+    if(isExpired.get_bool())\n+      return true;\n+\n+    return false;\n+}\n+\n+NameNewReturn WalletModel::nameNew(const QString &name)\n+{\n+    std::string strName = name.toStdString ();\n+    std::string data;\n+\n+    UniValue params(UniValue::VOBJ);\n+    std::vector<UniValue> values;\n+    UniValue res, txid, rand;\n+\n+    // uint64_t rand;\n+    // uint160 hash;\n+    // QString address;\n+    // std::vector<unsigned char> vchName;\n+\n+    NameNewReturn retval;\n+\n+    params.push_back (Pair(\"name\", strName));\n+    try {\n+        res = name_new (params, false);\n+    } catch (const UniValue& e) {\n+        std::string strErr = e.getValStr();\n+        LogPrintf (\"nameNew Error: %s\\n\", strErr.c_str());\n+        retval.err_msg = strErr;\n+        retval.ok = false;\n+        return retval;\n+    }\n+\n+    // NOTE: this ok var seems to be used as a temporary\n+    // 'did this succeed' check because the UI code used to\n+    // do all the checks/wallet stuff itself\n+    retval.ok = true;\n+\n+    values = res.getValues ();\n+    txid = values[0];\n+    rand = values[1];\n+\n+    // txid\n+    retval.hex = txid.get_str ();\n+    // rand\n+    retval.rand = rand.get_str ();\n+\n+    return retval;\n+}\n+\n+// this gets called from configure names dialog after name_new succeeds\n+QString WalletModel::nameFirstUpdatePrepare(const QString& name, const QString& data)\n+{\n+    if (data.isEmpty())\n+        return tr(\"Data cannot be blank.\");\n+\n+    const std::string strName = name.toStdString ();\n+    const std::string strData = data.toStdString();\n+    NameNewReturn updatedNameNewReturn;\n+\n+    // we need to write out everything in NameNewReturn to the wallet, essentially\n+    // that's where wallet->WriteNameFirstUpdate comes in\n+    // it gets loaded at wallet start, and as long as we keep it updated as\n+    // things happen, we should be able to rely on it\n+\n+    LOCK(cs_main);\n+    // pendingNameFirstUpdate is set by the time we get here inside managenamespage.cpp:134\n+    std::map<std::string, NameNewReturn>::iterator it = pendingNameFirstUpdate.find(strName);\n+\n+    if (it == pendingNameFirstUpdate.end())\n+        return tr(\"Cannot find stored name_new data for name\");\n+\n+    const std::string txid = it->second.hex;\n+    const std::string rand = it->second.rand;\n+    const std::string toaddress = it->second.toaddress;\n+\n+    updatedNameNewReturn.ok = true;\n+    updatedNameNewReturn.hex = txid;\n+    updatedNameNewReturn.rand = rand;\n+    updatedNameNewReturn.data = strData;\n+    if(!toaddress.empty ())\n+        updatedNameNewReturn.toaddress = toaddress;\n+\n+    it->second = updatedNameNewReturn;\n+\n+    UniValue uniNameUpdateData(UniValue::VOBJ);\n+    uniNameUpdateData.pushKV (\"txid\", txid);\n+    uniNameUpdateData.pushKV (\"rand\", rand);\n+    uniNameUpdateData.pushKV (\"data\", strData);\n+    if(!toaddress.empty ())\n+        uniNameUpdateData.pushKV (\"toaddress\", toaddress);\n+\n+    std::string jsonData = uniNameUpdateData.write();\n+    LogPrintf (\"Writing name_firstupdate %s => %s\\n\", strName.c_str(), jsonData.c_str());\n+    wallet->WriteNameFirstUpdate(strName, jsonData);\n+    return tr(\"\");\n+}\n+\n+void WalletModel::sendPendingNameFirstUpdates()\n+{\n+    for (std::map<std::string, NameNewReturn>::iterator i = pendingNameFirstUpdate.begin();\n+         i != pendingNameFirstUpdate.end(); )\n+    {\n+        UniValue params1(UniValue::VOBJ), params2(UniValue::VOBJ);\n+        UniValue res1, res2, val;\n+\n+        std::string strName = i->first;\n+        std::string txid = i->second.hex;\n+        std::string rand = i->second.rand;\n+        std::string data = i->second.data;\n+        std::string toaddress = i->second.toaddress;\n+\n+        params1.push_back (Pair(\"txid\", txid));\n+\n+        // if we're here, the names doesn't exist\n+        // should we remove it from the DB?\n+        try {\n+            res1 = gettransaction( params1, false);\n+        }\n+        catch (const UniValue& e) {\n+            LogPrintf (\"gettransaction error for name %s: %s\\n\", strName.c_str(), e.getValStr().c_str());\n+            ++i;\n+            continue;\n+        }\n+\n+        val = find_value (res1, \"confirmations\");\n+        if (!val.isNum ())\n+        {\n+            LogPrintf (\"No confirmations for name %s\\n\", strName.c_str());\n+            ++i;\n+            continue;\n+        }\n+\n+        const int confirms = val.get_int ();\n+        LogPrintf (\"Pending Name FirstUpdate Confirms: %d\\n\", confirms);\n+\n+        if ( confirms < 12)\n+        {\n+            ++i;\n+            continue;\n+        }\n+\n+        params2 = UniValue::VOBJ;\n+        params2.push_back (Pair(\"name\", strName));\n+        params2.push_back (Pair(\"rand\", rand));\n+        params2.push_back (Pair(\"tx\", txid));\n+        params2.push_back (Pair(\"value\", data));\n+        if(!toaddress.empty())\n+            params2.push_back (Pair(\"toaddress\", toaddress));\n+\n+        try {\n+            res2 = name_firstupdate (params2, false);\n+        }\n+        catch (const UniValue& e) {\n+            LogPrintf (\"name_firstupdate error: %s\\n\", e.getValStr().c_str());\n+            ++i;\n+            continue;\n+        }\n+\n+        LogPrintf (\"sent name_firstupdate %s\\n\", strName.c_str());\n+        pendingNameFirstUpdate.erase(i++);\n+        wallet->EraseNameFirstUpdate(strName);","path":"src/qt/walletmodel.cpp","position":246,"original_position":246,"commit_id":"9f2ff2a03482a2aa345e34244fbb9607fb102113","original_commit_id":"9f2ff2a03482a2aa345e34244fbb9607fb102113","user":{"login":"domob1812","id":4943644,"avatar_url":"https://avatars.githubusercontent.com/u/4943644?v=3","gravatar_id":"","url":"https://api.github.com/users/domob1812","html_url":"https://github.com/domob1812","followers_url":"https://api.github.com/users/domob1812/followers","following_url":"https://api.github.com/users/domob1812/following{/other_user}","gists_url":"https://api.github.com/users/domob1812/gists{/gist_id}","starred_url":"https://api.github.com/users/domob1812/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/domob1812/subscriptions","organizations_url":"https://api.github.com/users/domob1812/orgs","repos_url":"https://api.github.com/users/domob1812/repos","events_url":"https://api.github.com/users/domob1812/events{/privacy}","received_events_url":"https://api.github.com/users/domob1812/received_events","type":"User","site_admin":false},"body":"Just a general comment - it seems that the pending name_firstupdate is only ever deleted from the wallet if it was successfully sent.  Maybe there should be some other mechanism, e. g., if the name was taken by someone else?  Otherwise it may \"corrupt\" the wallet.  (I know that you just implemented what is in the old code, but maybe we can discuss this and resolve it more thoroughly now or in a future patch.)","created_at":"2016-02-21T10:28:45Z","updated_at":"2016-02-21T10:28:45Z","html_url":"https://github.com/namecoin/namecoin-core/pull/67#discussion_r53564737","pull_request_url":"https://api.github.com/repos/namecoin/namecoin-core/pulls/67","_links":{"self":{"href":"https://api.github.com/repos/namecoin/namecoin-core/pulls/comments/53564737"},"html":{"href":"https://github.com/namecoin/namecoin-core/pull/67#discussion_r53564737"},"pull_request":{"href":"https://api.github.com/repos/namecoin/namecoin-core/pulls/67"}}},"pull_request":{"url":"https://api.github.com/repos/namecoin/namecoin-core/pulls/67","id":60079481,"html_url":"https://github.com/namecoin/namecoin-core/pull/67","diff_url":"https://github.com/namecoin/namecoin-core/pull/67.diff","patch_url":"https://github.com/namecoin/namecoin-core/pull/67.patch","issue_url":"https://api.github.com/repos/namecoin/namecoin-core/issues/67","number":67,"state":"open","locked":false,"title":"qt re-implementation of manage names","user":{"login":"brandonrobertz","id":2670795,"avatar_url":"https://avatars.githubusercontent.com/u/2670795?v=3","gravatar_id":"","url":"https://api.github.com/users/brandonrobertz","html_url":"https://github.com/brandonrobertz","followers_url":"https://api.github.com/users/brandonrobertz/followers","following_url":"https://api.github.com/users/brandonrobertz/following{/other_user}","gists_url":"https://api.github.com/users/brandonrobertz/gists{/gist_id}","starred_url":"https://api.github.com/users/brandonrobertz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brandonrobertz/subscriptions","organizations_url":"https://api.github.com/users/brandonrobertz/orgs","repos_url":"https://api.github.com/users/brandonrobertz/repos","events_url":"https://api.github.com/users/brandonrobertz/events{/privacy}","received_events_url":"https://api.github.com/users/brandonrobertz/received_events","type":"User","site_admin":false},"body":"This is a merge and partial re-write of \"manage names\" tab from namecoin legacy on top of namecoin-core. I used the RPC functions, internally, to do the heavy lifting. The previous QT UI duplicated much of the code. I also moved the manage names UI from a separate popup to a tab in the main UI.\r\n\r\nI tried to keep the patch footprint as small as possible. If anyone sees room to make it even smaller, please comment. A major goal here was to minimize the probability of conflicts in the future.\r\n\r\nSome of the code you see here is directly merged from the legacy names page UI. Please let me know if you see problems in it.\r\n\r\nSome areas that warrant extra consideration:\r\n- The changes in `src/qt/transactionrecord.cpp` were 100% taken from legacy. They might not be necessary.\r\n- The changes in `walletdb.cpp` are very important and should have code review.\r\n- Testing using different QT/GUI config settings would be helpful\r\n","created_at":"2016-02-21T08:50:37Z","updated_at":"2016-02-21T10:28:45Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e01f460f8d258b83ae67f5e5cf47d36bb5137aab","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/namecoin/namecoin-core/pulls/67/commits","review_comments_url":"https://api.github.com/repos/namecoin/namecoin-core/pulls/67/comments","review_comment_url":"https://api.github.com/repos/namecoin/namecoin-core/pulls/comments{/number}","comments_url":"https://api.github.com/repos/namecoin/namecoin-core/issues/67/comments","statuses_url":"https://api.github.com/repos/namecoin/namecoin-core/statuses/9f2ff2a03482a2aa345e34244fbb9607fb102113","head":{"label":"brandonrobertz:master","ref":"master","sha":"9f2ff2a03482a2aa345e34244fbb9607fb102113","user":{"login":"brandonrobertz","id":2670795,"avatar_url":"https://avatars.githubusercontent.com/u/2670795?v=3","gravatar_id":"","url":"https://api.github.com/users/brandonrobertz","html_url":"https://github.com/brandonrobertz","followers_url":"https://api.github.com/users/brandonrobertz/followers","following_url":"https://api.github.com/users/brandonrobertz/following{/other_user}","gists_url":"https://api.github.com/users/brandonrobertz/gists{/gist_id}","starred_url":"https://api.github.com/users/brandonrobertz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brandonrobertz/subscriptions","organizations_url":"https://api.github.com/users/brandonrobertz/orgs","repos_url":"https://api.github.com/users/brandonrobertz/repos","events_url":"https://api.github.com/users/brandonrobertz/events{/privacy}","received_events_url":"https://api.github.com/users/brandonrobertz/received_events","type":"User","site_admin":false},"repo":{"id":50142842,"name":"namecoin-core","full_name":"brandonrobertz/namecoin-core","owner":{"login":"brandonrobertz","id":2670795,"avatar_url":"https://avatars.githubusercontent.com/u/2670795?v=3","gravatar_id":"","url":"https://api.github.com/users/brandonrobertz","html_url":"https://github.com/brandonrobertz","followers_url":"https://api.github.com/users/brandonrobertz/followers","following_url":"https://api.github.com/users/brandonrobertz/following{/other_user}","gists_url":"https://api.github.com/users/brandonrobertz/gists{/gist_id}","starred_url":"https://api.github.com/users/brandonrobertz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brandonrobertz/subscriptions","organizations_url":"https://api.github.com/users/brandonrobertz/orgs","repos_url":"https://api.github.com/users/brandonrobertz/repos","events_url":"https://api.github.com/users/brandonrobertz/events{/privacy}","received_events_url":"https://api.github.com/users/brandonrobertz/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/brandonrobertz/namecoin-core","description":"Namecoin Core QT GUI re-implementation (EXPERIMENTAL)","fork":true,"url":"https://api.github.com/repos/brandonrobertz/namecoin-core","forks_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/forks","keys_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/teams","hooks_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/hooks","issue_events_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/issues/events{/number}","events_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/events","assignees_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/assignees{/user}","branches_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/branches{/branch}","tags_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/tags","blobs_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/statuses/{sha}","languages_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/languages","stargazers_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/stargazers","contributors_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/contributors","subscribers_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/subscribers","subscription_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/subscription","commits_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/issues/comments{/number}","contents_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/contents/{+path}","compare_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/merges","archive_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/downloads","issues_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/issues{/number}","pulls_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/pulls{/number}","milestones_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/milestones{/number}","notifications_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/labels{/name}","releases_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/releases{/id}","deployments_url":"https://api.github.com/repos/brandonrobertz/namecoin-core/deployments","created_at":"2016-01-21T23:05:17Z","updated_at":"2016-01-25T04:45:31Z","pushed_at":"2016-02-21T08:19:50Z","git_url":"git://github.com/brandonrobertz/namecoin-core.git","ssh_url":"git@github.com:brandonrobertz/namecoin-core.git","clone_url":"https://github.com/brandonrobertz/namecoin-core.git","svn_url":"https://github.com/brandonrobertz/namecoin-core","homepage":"","size":49788,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":false,"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":"namecoin:master","ref":"master","sha":"42884634f7af033d5d2c066ee12c51a58c927293","user":{"login":"namecoin","id":1068524,"avatar_url":"https://avatars.githubusercontent.com/u/1068524?v=3","gravatar_id":"","url":"https://api.github.com/users/namecoin","html_url":"https://github.com/namecoin","followers_url":"https://api.github.com/users/namecoin/followers","following_url":"https://api.github.com/users/namecoin/following{/other_user}","gists_url":"https://api.github.com/users/namecoin/gists{/gist_id}","starred_url":"https://api.github.com/users/namecoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/namecoin/subscriptions","organizations_url":"https://api.github.com/users/namecoin/orgs","repos_url":"https://api.github.com/users/namecoin/repos","events_url":"https://api.github.com/users/namecoin/events{/privacy}","received_events_url":"https://api.github.com/users/namecoin/received_events","type":"Organization","site_admin":false},"repo":{"id":30645800,"name":"namecoin-core","full_name":"namecoin/namecoin-core","owner":{"login":"namecoin","id":1068524,"avatar_url":"https://avatars.githubusercontent.com/u/1068524?v=3","gravatar_id":"","url":"https://api.github.com/users/namecoin","html_url":"https://github.com/namecoin","followers_url":"https://api.github.com/users/namecoin/followers","following_url":"https://api.github.com/users/namecoin/following{/other_user}","gists_url":"https://api.github.com/users/namecoin/gists{/gist_id}","starred_url":"https://api.github.com/users/namecoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/namecoin/subscriptions","organizations_url":"https://api.github.com/users/namecoin/orgs","repos_url":"https://api.github.com/users/namecoin/repos","events_url":"https://api.github.com/users/namecoin/events{/privacy}","received_events_url":"https://api.github.com/users/namecoin/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/namecoin/namecoin-core","description":"Reimplementation of Namecoin on top of the current Bitcoin Core codebase.","fork":true,"url":"https://api.github.com/repos/namecoin/namecoin-core","forks_url":"https://api.github.com/repos/namecoin/namecoin-core/forks","keys_url":"https://api.github.com/repos/namecoin/namecoin-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/namecoin/namecoin-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/namecoin/namecoin-core/teams","hooks_url":"https://api.github.com/repos/namecoin/namecoin-core/hooks","issue_events_url":"https://api.github.com/repos/namecoin/namecoin-core/issues/events{/number}","events_url":"https://api.github.com/repos/namecoin/namecoin-core/events","assignees_url":"https://api.github.com/repos/namecoin/namecoin-core/assignees{/user}","branches_url":"https://api.github.com/repos/namecoin/namecoin-core/branches{/branch}","tags_url":"https://api.github.com/repos/namecoin/namecoin-core/tags","blobs_url":"https://api.github.com/repos/namecoin/namecoin-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/namecoin/namecoin-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/namecoin/namecoin-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/namecoin/namecoin-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/namecoin/namecoin-core/statuses/{sha}","languages_url":"https://api.github.com/repos/namecoin/namecoin-core/languages","stargazers_url":"https://api.github.com/repos/namecoin/namecoin-core/stargazers","contributors_url":"https://api.github.com/repos/namecoin/namecoin-core/contributors","subscribers_url":"https://api.github.com/repos/namecoin/namecoin-core/subscribers","subscription_url":"https://api.github.com/repos/namecoin/namecoin-core/subscription","commits_url":"https://api.github.com/repos/namecoin/namecoin-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/namecoin/namecoin-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/namecoin/namecoin-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/namecoin/namecoin-core/issues/comments{/number}","contents_url":"https://api.github.com/repos/namecoin/namecoin-core/contents/{+path}","compare_url":"https://api.github.com/repos/namecoin/namecoin-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/namecoin/namecoin-core/merges","archive_url":"https://api.github.com/repos/namecoin/namecoin-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/namecoin/namecoin-core/downloads","issues_url":"https://api.github.com/repos/namecoin/namecoin-core/issues{/number}","pulls_url":"https://api.github.com/repos/namecoin/namecoin-core/pulls{/number}","milestones_url":"https://api.github.com/repos/namecoin/namecoin-core/milestones{/number}","notifications_url":"https://api.github.com/repos/namecoin/namecoin-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/namecoin/namecoin-core/labels{/name}","releases_url":"https://api.github.com/repos/namecoin/namecoin-core/releases{/id}","deployments_url":"https://api.github.com/repos/namecoin/namecoin-core/deployments","created_at":"2015-02-11T12:02:31Z","updated_at":"2016-02-16T10:16:02Z","pushed_at":"2016-02-21T08:50:37Z","git_url":"git://github.com/namecoin/namecoin-core.git","ssh_url":"git@github.com:namecoin/namecoin-core.git","clone_url":"https://github.com/namecoin/namecoin-core.git","svn_url":"https://github.com/namecoin/namecoin-core","homepage":null,"size":49901,"stargazers_count":55,"watchers_count":55,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":22,"mirror_url":null,"open_issues_count":31,"forks":22,"open_issues":31,"watchers":55,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/namecoin/namecoin-core/pulls/67"},"html":{"href":"https://github.com/namecoin/namecoin-core/pull/67"},"issue":{"href":"https://api.github.com/repos/namecoin/namecoin-core/issues/67"},"comments":{"href":"https://api.github.com/repos/namecoin/namecoin-core/issues/67/comments"},"review_comments":{"href":"https://api.github.com/repos/namecoin/namecoin-core/pulls/67/comments"},"review_comment":{"href":"https://api.github.com/repos/namecoin/namecoin-core/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/namecoin/namecoin-core/pulls/67/commits"},"statuses":{"href":"https://api.github.com/repos/namecoin/namecoin-core/statuses/9f2ff2a03482a2aa345e34244fbb9607fb102113"}}}}