View difference between Paste ID: CRSmxegj and fSKbP4Xs
SHOW: | | - or go back to the newest paste.
1
// You need node: https://nodejs.org/en/
2
// Download: https://github.com/nocaremc/nodex-ws
3
// Replace app.js contents with this paste
4
// In the same directory as app.js: npm install
5
// to run: npm start
6
/* Example output:
7
 USD:BTS - 0.20012536757755442
8
 CNY:BTS - 1.282795829167645
9-
 BTS:BCL - 19.41670234815228
9+
 BTS:target - 19.41670234815228
10-
 USD:BCL - 3.8857746945679392
10+
 USD:target - 3.8857746945679392
11-
 CNY:BCL - 24.907664788399362
11+
 CNY:target - 24.907664788399362
12
*/
13
const log = require('./src/Log.js')
14
const API = require('./src/API.js')
15
16
let api = new API('wss://la.dexnode.net/ws', {perMessageDeflate: false})
17
18
api.on("open", () => {
19
    api.database(database => {
20-
        // api.database_api.lookup_asset_symbols(JSON.stringify(['USD','BTS','BCL']), result => {
20+
        // api.database_api.lookup_asset_symbols(JSON.stringify(['EUR']), result => {
21
        //     log.warn(result)
22
        // })
23
        let usd = {id: '1.3.121'}
24
        let cny = {id: '1.3.113'}
25
        let bts = {id: '1.3.0'}
26-
        let bcl = {id: '1.3.2705'}
26+
        let target = {id: '1.3.120'} // bitEUR
27-
        let bts_bcl = {latest: undefined}
27+
        let bts_target = {latest: undefined}
28
        let usd_bts = {latest: undefined}
29
        let cny_bts = {latest: undefined}
30-
        // Get ticker for bts:bcl
30+
        // Get ticker for bts:target
31-
        api.database_api.get_ticker(bts.id, bcl.id, result => {
31+
        api.database_api.get_ticker(bts.id, target.id, result => {
32
            // Calculate an average from latest and bids/asks
33-
            bts_bcl.latest = sum(result)
33+
            bts_target.latest = sum(result)
34-
            bts_bcl.average_latest = bts_bcl.latest / 3
34+
            bts_target.average_latest = bts_target.latest / 3
35
            
36
            api.database_api.get_ticker(usd.id, bts.id, result => {
37
                // Calculate an average from latest and bids/asks
38
                usd_bts.latest = sum(result)
39
                usd_bts.average_latest = usd_bts.latest / 3
40
            
41
                api.database_api.get_ticker(cny.id, bts.id, result => {
42
                    
43
                    cny_bts.latest = sum(result)
44
                    cny_bts.average_latest = cny_bts.latest / 3
45
                    log.error("USD:BTS - " + usd_bts.average_latest)
46
                    log.error("CNY:BTS - " + cny_bts.average_latest)
47-
                    log.error("BTS:BCL - " + bts_bcl.average_latest)
47+
                    log.error("BTS:target - " + bts_target.average_latest)
48-
                    log.error("USD:BCL - " + usd_bts.average_latest * bts_bcl.average_latest)
48+
                    log.error("USD:target - " + usd_bts.average_latest * bts_target.average_latest)
49-
                    log.error("CNY:BCL - " + cny_bts.average_latest * bts_bcl.average_latest)
49+
                    log.error("CNY:target - " + cny_bts.average_latest * bts_target.average_latest)
50
                    //api.close()
51
                })
52
            })
53
        })
54
    })
55
})
56
57
function sum(result) {
58
    return [
59
        result.latest, result.lowest_ask, result.highest_bid
60
    ].reduce((price, last) => {
61
        return parseFloat(last) + parseFloat(price)
62
    })
63
}