|
-
-
- var Decimal = require("decimal.js");
- Decimal8 = Decimal.clone({ precision:8, rounding:8 });
-
- function doSmartRedirect(req, res, defaultUrl) {
- if (req.session.redirectUrl) {
- res.redirect(req.session.redirectUrl);
- req.session.redirectUrl = null;
-
- } else {
- res.redirect(defaultUrl);
- }
-
- res.end();
- }
-
- function redirectToConnectPageIfNeeded(req, res) {
- if (!req.session.host) {
- req.session.redirectUrl = req.originalUrl;
-
- res.redirect("/");
- res.end();
-
- return true;
- }
-
- return false;
- }
-
- function hex2ascii(hex) {
- var str = "";
- for (var i = 0; i < hex.length; i += 2) {
- str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
- }
-
- return str;
- }
-
- function getBlockReward(blockHeight) {
-
- var nSubsidy = 10 * 100000000;
- var prevBlock = blockHeight -1;
-
- // yearly decline of production by 10% per year, projected 136m coins max by year 2050+.
-
- var i =0;
-
- for (i = 262800; i <= prevBlock ; i += 262800 ) {
-
- nSubsidy -= nSubsidy/10;
-
- }
-
- return nSubsidy/100000000;
- }
-
- function splitArrayIntoChunks(array, chunkSize) {
- var j = array.length;
- var chunks = [];
-
- for (var i = 0; i < j; i += chunkSize) {
- chunks.push(array.slice(i, i + chunkSize));
- }
-
- return chunks;
- }
-
- function getRandomString(length, chars) {
- var mask = '';
-
- if (chars.indexOf('a') > -1) {
- mask += 'abcdefghijklmnopqrstuvwxyz';
- }
-
- if (chars.indexOf('A') > -1) {
- mask += 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
- }
-
- if (chars.indexOf('#') > -1) {
- mask += '0123456789';
- }
-
- if (chars.indexOf('!') > -1) {
- mask += '~`!@#$%^&*()_+-={}[]:";\'<>?,./|\\';
- }
-
- var result = '';
- for (var i = length; i > 0; --i) {
- result += mask[Math.floor(Math.random() * mask.length)];
- }
-
- return result;
- }
-
- module.exports = {
- doSmartRedirect: doSmartRedirect,
- redirectToConnectPageIfNeeded: redirectToConnectPageIfNeeded,
- hex2ascii: hex2ascii,
- getBlockReward: getBlockReward,
- splitArrayIntoChunks: splitArrayIntoChunks,
- getRandomString: getRandomString
- };
|