aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2013-02-27 19:59:21 -0800
committerAdam Soltys <[email protected]>2013-02-27 20:12:29 -0800
commit0b486c8c55060be71d9a97c79b5f5b32ea69d30c (patch)
tree7ae2a4d9577681278b9eba4211a38d0f64a98590
parenta24d76a8d62c9f370f1033bd10e8bc2dce158405 (diff)
downloadcoinos-server-0b486c8c55060be71d9a97c79b5f5b32ea69d30c.tar.gz
coinos-server-0b486c8c55060be71d9a97c79b5f5b32ea69d30c.zip
Create deposit and exec pages for issuing digiBTC
-rw-r--r--app.coffee20
-rw-r--r--public/js/deposit.coffee82
-rw-r--r--public/js/index.coffee1
-rw-r--r--views/main/deposit.html22
-rw-r--r--views/main/exec.html18
5 files changed, 143 insertions, 0 deletions
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, '<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>