diff options
| -rw-r--r-- | app.coffee | 20 | ||||
| -rw-r--r-- | public/js/deposit.coffee | 82 | ||||
| -rw-r--r-- | public/js/index.coffee | 1 | ||||
| -rw-r--r-- | views/main/deposit.html | 22 | ||||
| -rw-r--r-- | views/main/exec.html | 18 |
5 files changed, 143 insertions, 0 deletions
@@ -51,6 +51,26 @@ authorize = (req, res, next) -> return next() res.redirect('/login') +app.get('/deposit', (req, res) -> + res.render('main/deposit', + js: (-> global.js), + css: (-> global.css) + ) +) + + +app.get('/exec', (req, res) -> + exec = require('child_process').exec + + exec("opentxs stat", (err, out, stderr) -> + res.render('main/exec', + out: out.replace(/\n/g, '<br />'), + js: (-> global.js), + css: (-> global.css) + ) + ) +) + app.get('/setup', calculator.new) app.get('/calculator', calculator.show) app.get('/ticker', calculator.ticker) diff --git a/public/js/deposit.coffee b/public/js/deposit.coffee new file mode 100644 index 00000000..72d74e05 --- /dev/null +++ b/public/js/deposit.coffee @@ -0,0 +1,82 @@ +#= require jquery-1.8.2.min.js +#= require moment.min.js +#= require qr.js +#= require bootstrap.min.js +#= require 2.5.3-crypto-sha256.js +#= require jsbn.js +#= require jsbn2.js +#= require check_address.js + +EXCHANGE_FAIL = "Error fetching exchange rate" +SOCKET_FAIL = "Error connecting to payment server" +ADDRESS_FAIL = "Invalid address" + +g = exports ? this + +$(-> + g.address or= '1VAnbtCAnYccECnjaMCPnWwt81EHCVgNr' + setupSocket() +) + +setupSocket = -> + g.address = "1VAnbtCAnYccECnjaMCPnWwt81EHCVgNr" + setTimeout(setupSocket, 10000) + + unless g.websocket and g.websocket.readyState is 1 + g.websocket = new WebSocket("ws://api.blockchain.info:8335/inv") + + g.websocket.onopen = -> + g.websocket.send('{"op":"addr_sub", "addr":"' + g.address + '"}') + + g.websocket.onerror = g.websocket.onclose = -> + fail(SOCKET_FAIL) + + g.websocket.onmessage = (e) -> + results = eval('(' + e.data + ')') + from_address = '' + total = 0 + received = 0 + + $.each(results.x.out, (i, v) -> + if (v.addr == g.address) + received += v.value / 100000000 + ) + + $.each(results.x.inputs, (i, v) -> + from_address = v.prev_out.addr + if (v.prev_out.addr == g.address) + input -= v.prev_out.value / 100000000 + ) + + $('#received').html(received) + +fail = (msg) -> + g.errors.push(msg) + g.errors = g.errors.uniq() + $('#calculator').hide() + $('#error').show().html(g.errors.toString()) + +clear = (msg) -> + i = g.errors.indexOf(msg) + g.errors.splice(i, 1) if i >= 0 + if (g.errors.length > 0) + $('#error').show().html(g.errors.toString()) + else + $('#error').hide() + $('#calculator').fadeIn('slow') + +get = (name) -> + name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]") + regexS = "[\\?&]" + name + "=([^&#]*)" + regex = new RegExp(regexS) + results = regex.exec(window.location.search) + + if (results == null) + return "" + else + return decodeURIComponent(results[1].replace(/\+/g, " ")) + +Array::uniq = -> + output = {} + output[@[key]] = @[key] for key in [0...@length] + value for key, value of output diff --git a/public/js/index.coffee b/public/js/index.coffee index 940a5e2a..8fffa607 100644 --- a/public/js/index.coffee +++ b/public/js/index.coffee @@ -1,4 +1,5 @@ #= require jquery-1.8.2.min.js +#= require bootstrap.js g = exports ? this diff --git a/views/main/deposit.html b/views/main/deposit.html new file mode 100644 index 00000000..924e1caa --- /dev/null +++ b/views/main/deposit.html @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8" /> + <meta name="viewport" content="width=480, height=752, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" /> + <title>Bitcoin Payment Calculator</title> + <link href="img/favicon.ico" rel="shortcut icon" /> + {{#css}}calculator{{/css}} + {{#js}}deposit{{/js}} + </head> + <body> + <div class="container-fluid"> + <h1>Deposit Bitcoin</h1> + + Send bitcoins to: 1VAnbtCAnYccECnjaMCPnWwt81EHCVgNr + + <br /> + + <span id="received">0</span> + </div> + </body> +</html> diff --git a/views/main/exec.html b/views/main/exec.html new file mode 100644 index 00000000..c735843d --- /dev/null +++ b/views/main/exec.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8" /> + <meta name="viewport" content="width=480, height=752, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" /> + <title>Bitcoin Payment Calculator</title> + <link href="img/favicon.ico" rel="shortcut icon" /> + {{#css}}calculator{{/css}} + {{#js}}deposit{{/js}} + </head> + <body> + <div class="container-fluid"> + <h1>Executing Command...</h1> + + {{{out}}} + </div> + </body> +</html> |
