-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
66 lines (58 loc) · 1.44 KB
/
server.js
File metadata and controls
66 lines (58 loc) · 1.44 KB
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
import {} from 'dotenv/config'
import { web3 } from './lib/web3'
import { getAllTokenBalances } from './lib/eth';
import { getAddressBalances, registerNewAddress } from './services/address';
const express = require('express');
const app = express();
app.post('/address/:address', async (req, res)=>{
const { address } = req.params
const result = await registerNewAddress(address.toLowerCase())
res.sendStatus(result ? 200 : 400)
})
app.get('/health', (req, res)=>{
res.sendStatus(200)
})
app.get('/historical', async (req, res)=>{
let err = null
const { addresses: a } = req.query
const addresses = a.split(',')
const result = await getAddressBalances(addresses).catch(e=>err=e)
if (err) {
res.sendStatus(500)
return
}
res.send(result)
})
app.get('/:address', async (req, res)=>{
let err = null
const { address } = req.params
if (!web3.utils.isAddress(address)) {
res.sendStatus(400)
return
}
const result = await getAddressBalances(address.toLowerCase()).catch(e=>err=e)
if (err) {
res.sendStatus(500)
return
}
res.send(result)
})
app.get('/', async (req, res)=>{
let err = null
const { addresses: a } = req.query
if (!a) {
res.sendStatus(404)
return
}
const addresses = a.split(',')
const result = await getAddressBalances(addresses).catch(e=>err=e)
if (err) {
res.sendStatus(500)
return
}
res.send(result)
})
const PORT = process.env.PORT || 3004;
app.listen(PORT, ()=>{
console.log(`listening on ${PORT}`);
})