| 106 | } |
| 107 | |
| 108 | void ProxyClientInfo::store_stats(td::StringBuilder &sb, td::int64 price_per_token) { |
| 109 | sb << "<table>\n"; |
| 110 | sb << "<tr><td>owner address</td><td>" << runner_->address_link(client_owner_address()) << "</td></tr>\n"; |
| 111 | sb << "<tr><td>sc address</td><td>" << runner_->address_link(client_sc_address()) << "</td></tr>\n"; |
| 112 | sb << "<tr><td>used tokens</td><td>" << tokens_used() << "</td></tr>\n"; |
| 113 | sb << "<tr><td>tokens to charge</td><td>" << tokens_ready_to_charge() << "/" << tokens_max_to_charge() << " (~" |
| 114 | << to_ton(tokens_ready_to_charge() * price_per_token) << ")"; |
| 115 | if (tokens_ready_to_charge()) { |
| 116 | sb << " <a href=\"/request/charge?client=" << client_owner_address().rserialize(true) << "\">charge now</a>"; |
| 117 | } |
| 118 | sb << "</td></tr>\n"; |
| 119 | sb << "<tr><td>available tokens</td><td>" << tokens_available() << "</td></tr>\n"; |
| 120 | sb << "<tr><td>reserved tokens</td><td>" << tokens_reserved_ << "</td></tr>\n"; |
| 121 | sb << "<tr><td>signed tokens</td><td>" << signed_payment_tokens() << "</td></tr>\n"; |
| 122 | sb << "<tr><td>running queries</td><td>" << running_queries() << "</td></tr>\n"; |
| 123 | sb << "<tr><td>closing</td><td>" << (is_closing() ? "YES" : "NO") << "</td></tr>\n"; |
| 124 | sb << "<tr><td>closed</td><td>" << (is_closed() ? "YES" : "NO") << "</td></tr>\n"; |
| 125 | sb << "</table>\n"; |
| 126 | } |
| 127 | |
| 128 | void ProxyClientInfo::store_stats(SimpleJsonSerializer &jb) { |
| 129 | jb.start_object(); |
nothing calls this directly
no test coverage detected