WIP most partial tx functionality working
This commit is contained in:
parent
2fb8ed3a69
commit
8cf5f2a453
3 changed files with 61 additions and 21 deletions
|
|
@ -7,7 +7,8 @@ var logger = require('./logger');
|
|||
|
||||
var SATOSHI_FACTOR = 1e8;
|
||||
var POLLING_RATE = 60 * 1000; // poll each minute
|
||||
|
||||
var REAP_RATE = 5 * 1000;
|
||||
var PENDING_TIMEOUT = 70 * 1000;
|
||||
var RECOMMENDED_FEE = 10000;
|
||||
var TX_0CONF_WAIT_TIME = 20 * 1000; // wait 20 seconds
|
||||
var MIN_CONFIDENCE = 0.7;
|
||||
|
|
@ -195,11 +196,13 @@ function _sendBitcoins(toAddress, satoshis, cb) {
|
|||
function executeTx(deviceFingerprint, tx, cb) {
|
||||
db.addTx(deviceFingerprint, tx, function(err, result) {
|
||||
if (err) return cb(err);
|
||||
if (!result) return cb(null, {statusCode: 204});
|
||||
var satoshisToSend = result.satoshisToSend;
|
||||
var dbTxId = result.id;
|
||||
|
||||
return _sendBitcoins(tx.toAddress, satoshisToSend, function(err, txHash) {
|
||||
if (satoshisToSend === 0)
|
||||
return cb(null, {statusCode: 204, txId: tx.txId, txHash: null});
|
||||
|
||||
_sendBitcoins(tx.toAddress, satoshisToSend, function(err, txHash) {
|
||||
var fee = null; // Need to fill this out in plugins
|
||||
db.addDigitalTx(dbTxId, err, txHash, fee);
|
||||
|
||||
|
|
@ -208,7 +211,8 @@ function executeTx(deviceFingerprint, tx, cb) {
|
|||
pollBalance();
|
||||
cb(null, {
|
||||
statusCode: 201, // Created
|
||||
txHash: txHash
|
||||
txHash: txHash,
|
||||
txId: tx.txId
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
@ -227,7 +231,8 @@ function reapTx(row) {
|
|||
}
|
||||
|
||||
function reapTxs() {
|
||||
db.pendingTxs(function(err, results) {
|
||||
db.pendingTxs(PENDING_TIMEOUT, function(err, results) {
|
||||
if (err) return logger.warn(err);
|
||||
var rows = results.rows;
|
||||
var rowCount = rows.length;
|
||||
for (var i = 0; i < rowCount; i++) {
|
||||
|
|
@ -237,8 +242,13 @@ function reapTxs() {
|
|||
});
|
||||
}
|
||||
|
||||
exports.trade = function trade(rawTrade, deviceFingerprint, cb) {
|
||||
db.addPendingTx(deviceFingerprint, rawTrade);
|
||||
exports.trade = function trade(deviceFingerprint, rawTrade, cb) {
|
||||
var tx = {
|
||||
txId: rawTrade.txId,
|
||||
toAddress: rawTrade.toAddress,
|
||||
currencyCode: rawTrade.currency
|
||||
};
|
||||
db.addPendingTx(deviceFingerprint, tx);
|
||||
|
||||
// add bill to trader queue (if trader is enabled)
|
||||
if (traderPlugin) {
|
||||
|
|
@ -440,7 +450,7 @@ exports.startPolling = function startPolling() {
|
|||
rateInterval = setInterval(pollRate, POLLING_RATE);
|
||||
|
||||
if (!reapTxInterval)
|
||||
reapTxInterval = setInterval(reapTxs, POLLING_RATE);
|
||||
reapTxInterval = setInterval(reapTxs, REAP_RATE);
|
||||
|
||||
startTrader();
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue