aboutsummaryrefslogtreecommitdiffstats
path: root/public/js/deposit.js
blob: 3bb5bf23cbfb251f301c37747c45f94712886592 (plain) (blame)
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
98
99
100
101
102
(function() {
  var ADDRESS_FAIL, EXCHANGE_FAIL, SOCKET_FAIL, clear, fail, g, get, setupSocket;

  EXCHANGE_FAIL = "Error fetching exchange rate";

  SOCKET_FAIL = "Error connecting to payment server";

  ADDRESS_FAIL = "Invalid address";

  g = typeof exports !== "undefined" && exports !== null ? exports : this;

  $(function() {
    g.address || (g.address = '1VAnbtCAnYccECnjaMCPnWwt81EHCVgNr');
    setupSocket();
    setupQR();
    return displayQR('bitcoin:' + g.address);
  });

  setupSocket = function() {
    g.address = "1VAnbtCAnYccECnjaMCPnWwt81EHCVgNr";
    setTimeout(setupSocket, 10000);
    if (!(g.websocket && g.websocket.readyState === 1)) {
      g.websocket = new WebSocket("ws://api.blockchain.info:8335/inv");
      g.websocket.onopen = function() {
        return g.websocket.send('{"op":"addr_sub", "addr":"' + g.address + '"}');
      };
      g.websocket.onerror = g.websocket.onclose = function() {
        return fail(SOCKET_FAIL);
      };
      return g.websocket.onmessage = function(e) {
        var from_address, received, results, total;
        results = eval('(' + e.data + ')');
        from_address = '';
        total = 0;
        received = 0;
        $.each(results.x.out, function(i, v) {
          if (v.addr === g.address) {
            return received += v.value;
          }
        });
        $.each(results.x.inputs, function(i, v) {
          from_address = v.prev_out.addr;
          if (v.prev_out.addr === g.address) {
            return input -= v.prev_out.value;
          }
        });
        return $.get("/issue/" + received, function(data) {
          return $('#received').text(data);
        });
      };
    }
  };

  fail = function(msg) {
    g.errors.push(msg);
    g.errors = g.errors.uniq();
    $('#calculator').hide();
    return $('#error').show().html(g.errors.toString());
  };

  clear = function(msg) {
    var i;
    i = g.errors.indexOf(msg);
    if (i >= 0) {
      g.errors.splice(i, 1);
    }
    if (g.errors.length > 0) {
      return $('#error').show().html(g.errors.toString());
    } else {
      $('#error').hide();
      return $('#calculator').fadeIn('slow');
    }
  };

  get = function(name) {
    var regex, regexS, results;
    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.prototype.uniq = function() {
    var key, output, value, _i, _ref, _results;
    output = {};
    for (key = _i = 0, _ref = this.length; 0 <= _ref ? _i < _ref : _i > _ref; key = 0 <= _ref ? ++_i : --_i) {
      output[this[key]] = this[key];
    }
    _results = [];
    for (key in output) {
      value = output[key];
      _results.push(value);
    }
    return _results;
  };

}).call(this);