bitcore-wallet-service/lib/lock.js

24 lines
555 B
JavaScript
Raw Normal View History

2015-04-03 11:43:22 -07:00
var $ = require('preconditions').singleton();
2015-04-07 13:02:08 -07:00
var _ = require('lodash');
var LocalLock = require('./locallock');
var RemoteLock = require('locker');
2015-01-27 05:18:45 -08:00
2015-04-08 06:21:01 -07:00
function Lock(opts) {
this.lock = new LocalLock();
};
2015-01-27 05:18:45 -08:00
2015-04-07 13:02:08 -07:00
Lock.prototype.runLocked = function(token, cb, task) {
$.shouldBeDefined(token);
2015-01-27 05:18:45 -08:00
2015-04-08 06:21:01 -07:00
this.lock.locked(token, 2 * 1000, 10 * 60 * 1000, function(err, release) {
if (err) return cb(new Error('Wallet is locked'));
2015-04-07 13:02:08 -07:00
var _cb = function() {
cb.apply(null, arguments);
2015-04-08 06:21:01 -07:00
release();
2015-04-07 13:02:08 -07:00
};
task(_cb);
});
2015-01-27 05:18:45 -08:00
};
module.exports = Lock;