Skip to content

Instantly share code, notes, and snippets.

@julianeon
Created June 11, 2015 22:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save julianeon/df0b2bbfdad06ef1b211 to your computer and use it in GitHub Desktop.
Save julianeon/df0b2bbfdad06ef1b211 to your computer and use it in GitHub Desktop.
A Node.js script that follows the transaction amounts, converted to USD, for a given account (here customized for Bitstamp).
var WebSocket = require('ws');
var moment= require('moment');
var yaml = require('js-yaml');
var fs = require('fs');
try {
var doc = yaml.safeLoad(fs.readFileSync('rates.yml', 'utf8'));
yen_value=doc["EUR"];
console.log(yen_value);
} catch (e) {
console.log(e);
}
function convert_to_usd(curr,value) {
if (curr==="BTC") {
rate=parseFloat(doc["BTC"]);
console.log("BTC_value")
to_dollar=value*rate;
console.log(to_dollar);
value=to_dollar;
}
else if (curr==="CNY") {
rate=parseFloat(doc["CNY"]);
console.log("CNY_value")
to_dollar=value*rate;
console.log(to_dollar);
value=to_dollar;
}
else if (curr==="MXN") {
rate=parseFloat(doc["MXN"]);
console.log("MXN_value")
to_dollar=value*rate;
console.log(to_dollar);
value=to_dollar;
}
else if (curr==="KRW") {
rate=parseFloat(doc["KRW"]);
console.log("KRW_value")
to_dollar=value*rate;
console.log(to_dollar);
value=to_dollar;
}
else if (curr==="EUR") {
rate=parseFloat(doc["EUR"]);
console.log("EUR_value")
to_dollar=value*rate;
console.log(to_dollar);
value=to_dollar;
}
else if (curr==="JPY") {
rate=parseFloat(doc["JPY"]);
console.log("JPY_value")
to_dollar=value*rate;
console.log(to_dollar);
value=to_dollar;
}
return value;
}
var ws = new WebSocket('wss://s1.ripple.com:443/');
var bitstamp = "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B";
var account = bitstamp;
var sum=0;
var time_start=moment();
var info_subscribe={
command: "subscribe",
accounts: [bitstamp]
};
ws.on('open', function() {
ws.send(JSON.stringify(info_subscribe));
});
ws.on('message', function(data, flags) {
var mom=moment().format('HH:mm:ss');
console.log(mom);
words=JSON.parse(data);
var tx=words["transaction"];
if (tx) {
var results=tx["hash"];
var taker=tx["TakerGets"]
if (taker) {
console.log(taker);
var curr=taker["currency"];
var val=taker["value"];
var longval=JSON.stringify(val);
var cline=curr + ' ' + longval;
if (typeof curr != 'undefined' && typeof longval != 'undefined') {
console.log(cline);
console.log("raw units");
quoteless=longval.replace(/['"]+/g, '');
var value=parseFloat(quoteless);
console.log(value);
value=convert_to_usd(curr,value);
sum += value;
var now=moment();
var time_diff=now.diff(time_start, 'minutes', true);
console.log("-------------total amount spent---converted to USD");
console.log(sum);
console.log("-------------bitstamp fee profit------------------");
console.log(sum*parseFloat(doc["BIT"]));
console.log("-------------time passed in mins------------------");
console.log(time_diff);
console.log("--------------------------------------------------");
};
}
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment