From 0b486c8c55060be71d9a97c79b5f5b32ea69d30c Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 27 Feb 2013 19:59:21 -0800 Subject: Create deposit and exec pages for issuing digiBTC --- app.coffee | 20 ++++++++++++ public/js/deposit.coffee | 82 ++++++++++++++++++++++++++++++++++++++++++++++++ public/js/index.coffee | 1 + views/main/deposit.html | 22 +++++++++++++ views/main/exec.html | 18 +++++++++++ 5 files changed, 143 insertions(+) create mode 100644 public/js/deposit.coffee create mode 100644 views/main/deposit.html create mode 100644 views/main/exec.html diff --git a/app.coffee b/app.coffee index 9bcd8169..d27fd803 100644 --- a/app.coffee +++ b/app.coffee @@ -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, '
'), + 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 @@ + + + + + + Bitcoin Payment Calculator + + {{#css}}calculator{{/css}} + {{#js}}deposit{{/js}} + + +
+

Deposit Bitcoin

+ + Send bitcoins to: 1VAnbtCAnYccECnjaMCPnWwt81EHCVgNr + +
+ + 0 +
+ + 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 @@ + + + + + + Bitcoin Payment Calculator + + {{#css}}calculator{{/css}} + {{#js}}deposit{{/js}} + + +
+

Executing Command...

+ + {{{out}}} +
+ + -- cgit v1.2.3