Introduction
CoinTools is A Chrome Extension that has a few useful tools and graphs for Cryptocurrency.
Previous Contributions
- v0.0.2 Cryptocurrency Conversion + UI Localization
- v0.0.1 Introduction to CoinTools! A Cryptocurrency Chrome Extension
Technology Stacks
Javascript that runs in Chrome Extension.
Github of CoinTools
https://github.com/DoctorLai/CoinTools
Chrome Webstore
It is available online at Chrome Webstore.
v0.0.3 Feature of CoinTools
Along with bug fixes and code refactoring, this version has the following features:
- Total market Cap USD Chart.
- Localization for Ranking Table.
- Stock Price Emoji
Commits
Roadmap of CoinTools
- real-time graphs
- search cryptocurrency
- historical data
Screenshots of CoinTools
Javascript calling CoinMarketCap API
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | // get ranking table from coinmarketcap const getRankingTable = (currency, dom, limit = 100) => { let currency_upper = currency.toUpperCase(); let currency_lower = currency.toLowerCase(); let api = "https://api.coinmarketcap.com/v1/ticker/?limit=" + limit; if (currency != '') { api += "&convert=" + currency_upper; } logit("calling " + api); dom.html('<img src="images/loading.gif" />'); var up_or_down_img = function(x) { if (x >= 0) { return "?" + x; } else { return "?" + x; } } $.ajax({ type: "GET", url: api, success: function(result) { let s = ''; s += '<table id="ranking" class="sortable">'; s += '<thead><tr>'; s += '<th class=sorttable_sorted>' + get_text('coin', 'Coin') + '</th>'; s += '<th>' + get_text('price_usd', 'Price USD') + '</th>'; s += '<th>' + get_text('price_btc', 'Price BTC') + '</th>'; s += '<th>' + get_text('change_1hr', 'Change 1 Hours') + '</th>'; s += '<th>' + get_text('change_24hr', 'Change 24 Hours') + '</th>'; s += '<th>' + get_text('change_7days', 'Change 7 Days') + '</th>'; s += '<th>' + get_text('last_updated', 'Last Updated') + '</th>'; s += '</tr></thead><tbody>'; for (let i = 0; i < result.length; i ++) { s += '<tr>'; s += '<td>' + result[i]['name'] + ' (' + result[i]['symbol'] + ')</td>'; s += '<td>' + result[i]['price_usd'] + '</td>'; s += '<td>' + result[i]['price_btc'] + '</td>'; s += '<td>' + up_or_down_img(result[i]['percent_change_1h']) + '</td>'; s += '<td>' + up_or_down_img(result[i]['percent_change_24h']) + '</td>'; s += '<td>' + up_or_down_img(result[i]['percent_change_7d']) + '</td>'; s += '<td>' + timestampToString(result[i]['last_updated']) + '</td>'; s += '</tr>'; } s += '</tbody>'; s += '</table>'; dom.html(s); sorttable.makeSortable(document.getElementById("ranking")); // chart let data = []; let total = 0; for (let i = 0; i < Math.min(15, result.length); i ++) { data.push({'coin': result[i]['name'], 'market_cap_usd': result[i]['market_cap_usd']}); total += parseInt(result[i]['market_cap_usd']); } api = "https://api.coinmarketcap.com/v1/global/"; $.ajax({ type: "GET", url: api, success: function(result) { let total_usd = parseInt(result.total_market_cap_usd); let others = total_usd - total; data.push({'coin': 'Others', 'market_cap_usd': others}); let chart = AmCharts.makeChart( "chart_div", { "type": "pie", "theme": "light", "dataProvider": data, "startDuration": 0, "valueField": "market_cap_usd", "titleField": "coin", "balloon":{ "fixedPosition": true }, "export": { "enabled": false } }); }, error: function(request, status, error) { logit('Response: ' + request.responseText); logit('Error: ' + error ); logit('Status: ' + status); }, complete: function(data) { logit("API Finished: " + api); } }); }, error: function(request, status, error) { logit('Response: ' + request.responseText); logit('Error: ' + error ); logit('Status: ' + status); }, complete: function(data) { logit("API Finished: " + api); } }); } |
// get ranking table from coinmarketcap const getRankingTable = (currency, dom, limit = 100) => { let currency_upper = currency.toUpperCase(); let currency_lower = currency.toLowerCase(); let api = "https://api.coinmarketcap.com/v1/ticker/?limit=" + limit; if (currency != '') { api += "&convert=" + currency_upper; } logit("calling " + api); dom.html('<img src="images/loading.gif" />'); var up_or_down_img = function(x) { if (x >= 0) { return "?" + x; } else { return "?" + x; } } $.ajax({ type: "GET", url: api, success: function(result) { let s = ''; s += '<table id="ranking" class="sortable">'; s += '<thead><tr>'; s += '<th class=sorttable_sorted>' + get_text('coin', 'Coin') + '</th>'; s += '<th>' + get_text('price_usd', 'Price USD') + '</th>'; s += '<th>' + get_text('price_btc', 'Price BTC') + '</th>'; s += '<th>' + get_text('change_1hr', 'Change 1 Hours') + '</th>'; s += '<th>' + get_text('change_24hr', 'Change 24 Hours') + '</th>'; s += '<th>' + get_text('change_7days', 'Change 7 Days') + '</th>'; s += '<th>' + get_text('last_updated', 'Last Updated') + '</th>'; s += '</tr></thead><tbody>'; for (let i = 0; i < result.length; i ++) { s += '<tr>'; s += '<td>' + result[i]['name'] + ' (' + result[i]['symbol'] + ')</td>'; s += '<td>' + result[i]['price_usd'] + '</td>'; s += '<td>' + result[i]['price_btc'] + '</td>'; s += '<td>' + up_or_down_img(result[i]['percent_change_1h']) + '</td>'; s += '<td>' + up_or_down_img(result[i]['percent_change_24h']) + '</td>'; s += '<td>' + up_or_down_img(result[i]['percent_change_7d']) + '</td>'; s += '<td>' + timestampToString(result[i]['last_updated']) + '</td>'; s += '</tr>'; } s += '</tbody>'; s += '</table>'; dom.html(s); sorttable.makeSortable(document.getElementById("ranking")); // chart let data = []; let total = 0; for (let i = 0; i < Math.min(15, result.length); i ++) { data.push({'coin': result[i]['name'], 'market_cap_usd': result[i]['market_cap_usd']}); total += parseInt(result[i]['market_cap_usd']); } api = "https://api.coinmarketcap.com/v1/global/"; $.ajax({ type: "GET", url: api, success: function(result) { let total_usd = parseInt(result.total_market_cap_usd); let others = total_usd - total; data.push({'coin': 'Others', 'market_cap_usd': others}); let chart = AmCharts.makeChart( "chart_div", { "type": "pie", "theme": "light", "dataProvider": data, "startDuration": 0, "valueField": "market_cap_usd", "titleField": "coin", "balloon":{ "fixedPosition": true }, "export": { "enabled": false } }); }, error: function(request, status, error) { logit('Response: ' + request.responseText); logit('Error: ' + error ); logit('Status: ' + status); }, complete: function(data) { logit("API Finished: " + api); } }); }, error: function(request, status, error) { logit('Response: ' + request.responseText); logit('Error: ' + error ); logit('Status: ' + status); }, complete: function(data) { logit("API Finished: " + api); } }); }
License
Contribution Welcome
Github: https://github.com/DoctorLai/SteemTools/
- Fork it!
- Create your feature branch: git checkout -b my-new-feature
- Commit your changes: git commit -am ‘Add some feature’
- Push to the branch: git push origin my-new-feature
- Submit a pull request.
Chrome Webstore
Install the CoinTools Now!
–EOF (The Ultimate Computing & Technology Blog) —
GD Star Rating
loading...
1000 wordsloading...
Last Post: CoinTool v0.0.2 - Cryptocurrency Conversion + UI Localization
Next Post: Python Script to Transfer SBD to Crytocurrency Exchange