-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwallet_server_main.js
131 lines (91 loc) · 3.28 KB
/
wallet_server_main.js
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
103
104
105
106
107
108
/*
* IOTA PAY - Wallet server
*
* listens on port 11000
*
*
* */
var http = require('http');
var wallet = require('./wallet_main.js');
let PORT = 11000;
////////////////////// USE ENVIRONMENT VARIABLES IF AVAILABLE ////////////////////////////////
if(typeof process.env.npm_package_config_port != "undefined")
{
PORT = parseInt(process.env.npm_package_config_port);
console.log("Using Environment Variable for PORT, value: " + PORT);
}
// init wallet
wallet.init_wallet();
// Main part
// Create server, allow connecting on port 11000
http.createServer(function (request, response) {
console.log("Incoming connection on port", PORT);
var rawbuffer = '';
request.on('data', function(data) {
rawbuffer += data;
});
request.on('end', function() {
var recbuffer = JSON.parse(rawbuffer);
if(recbuffer.request == 'getMonitoredAddress')
{
wallet.getMonitoredAddress().then((address)=>{
response.writeHead(200, {'Content-Type': 'application/javascript'});
response.end(JSON.stringify({accepted:true, address:address}));
}).catch(e => {
response.writeHead(200, {'Content-Type': 'application/javascript'});
response.end(JSON.stringify({accepted:false}));
});
}
else if(recbuffer.request == 'checkAddressBalance')
{
wallet.checkAddressBalance(recbuffer.address).then((balance)=>{
response.writeHead(200, {'Content-Type': 'application/javascript'});
response.end(JSON.stringify({accepted:true, balance: balance}));
}).catch(e => {
response.writeHead(200, {'Content-Type': 'application/javascript'});
response.end(JSON.stringify({accepted:false}));
});
}
else if(recbuffer.request == 'checkAddressBalanceUnconfirmed')
{
wallet.checkAddressBalanceUnconfirmed(recbuffer.address).then((balance)=>{
response.writeHead(200, {'Content-Type': 'application/javascript'});
response.end(JSON.stringify({accepted:true, balance: balance}));
}).catch(e => {
response.writeHead(200, {'Content-Type': 'application/javascript'});
response.end(JSON.stringify({accepted:false}));
});
}
else if(recbuffer.request == 'sendTransfer')
{
wallet.sendFunds(recbuffer.address, recbuffer.amount).then((txHash)=>
{
response.writeHead(200, {'Content-Type': 'application/javascript'});
response.end(JSON.stringify({accepted: true }));
// watch txHash confirmation possible!
}).catch(e => {
response.writeHead(200, {'Content-Type': 'application/javascript'});
response.end(JSON.stringify({accepted:false}));
});
}
else if(recbuffer.request == 'sendBundles')
{
wallet.sendBundles(recbuffer.bundles, recbuffer.reattach).then((txHash)=>
{
response.writeHead(200, {'Content-Type': 'application/javascript'});
response.end(JSON.stringify({accepted: true }));
}).catch(e => {
response.writeHead(200, {'Content-Type': 'application/javascript'});
response.end(JSON.stringify({accepted:false }));
});
}
else
{
console.warn("Function",recbuffer.request,"not implemented yet!");
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('UNKNOWN_REQUEST_TYPE');
}
});
}).listen(PORT);
////////////////////////////////// INIT ///////////////////////////////////////////////////////
console.log("Server running, Port", PORT, "open.");