37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
var _transferExchange;
|
|
var _api;
|
|
var _config;
|
|
var _conString = process.env.DATABASE_URL || 'postgres://lamassu:lamassu@localhost/lamassu';
|
|
var _db = require('../db/postgresql_interface').factory(_conString);
|
|
|
|
exports.init = function(config, api, transferExchange) {
|
|
_api = api;
|
|
_config = config;
|
|
_transferExchange = transferExchange;
|
|
};
|
|
|
|
exports.setDomain = function(domain) {
|
|
_transferExchange.setDomain(domain);
|
|
};
|
|
|
|
exports.sendBitcoins = function sendBitcoins(deviceFingerprint, tx, cb) {
|
|
_db.summonTransaction(deviceFingerprint, tx, function (err, isNew, txHash) {
|
|
if (err) return cb(err);
|
|
if (isNew) return _transferExchange.sendBitcoins(tx.toAddress, tx.satoshis,
|
|
_config.settings.transactionFee, function(err, txHash) {
|
|
if (err) {
|
|
_db.reportTransactionError(tx, err);
|
|
return cb(err);
|
|
}
|
|
cb(null, txHash);
|
|
_db.completeTransaction(tx, txHash);
|
|
_api.triggerBalance();
|
|
});
|
|
|
|
// transaction exists, but txHash might be null,
|
|
// in which case ATM should continue polling
|
|
cb(null, txHash);
|
|
});
|
|
};
|