Relocate presubmit emission to immediately before transaction submit

This commit is contained in:
wltsmrz
2014-11-13 21:44:20 -08:00
parent 5f3cf72cc6
commit 7a1feaa897
2 changed files with 22 additions and 21 deletions

View File

@@ -365,8 +365,6 @@ TransactionManager.prototype._request = function(tx) {
return tx.emit('error', new RippleError('tejLocalSigningRequired', message));
}
tx.emit('presubmit');
if (tx.finalized) {
return;
}
@@ -557,9 +555,11 @@ TransactionManager.prototype._request = function(tx) {
return;
}
submitRequest.timeout(self._submissionTimeout, requestTimeout);
tx.submissions = submitRequest.broadcast();
tx.emit('presubmit');
submitRequest.timeout(self._submissionTimeout, requestTimeout);
tx.submissions = submitRequest.broadcast();
tx.attempts++;
tx.emit('postsubmit');
};

View File

@@ -1560,33 +1560,34 @@ describe('Transaction', function() {
transaction.submit();
});
it.skip('Abort submission', function(done) {
it('Abort submission on presubmit', function(done) {
var remote = new Remote();
var transaction = new Transaction(remote).accountSet('r36xtKNKR43SeXnGn7kN4r4JdQzcrkqpWe');
var account = remote.addAccount('r36xtKNKR43SeXnGn7kN4r4JdQzcrkqpWe');
remote.setSecret('rJaT8TafQfYJqDm8aC5n3Yx5yWEL2Ery79', 'snPwFATthTkKnGjEW73q3TL4yci1Q');
var server = new Server(remote, 'wss://s1.ripple.com:443');
server._computeFee = function() { return '12'; };
server._connected = true;
remote._servers.push(server);
remote._connected = true;
remote._ledger_current_index = 1;
var transaction = new Transaction(remote).accountSet('rJaT8TafQfYJqDm8aC5n3Yx5yWEL2Ery79');
var account = remote.account('rJaT8TafQfYJqDm8aC5n3Yx5yWEL2Ery79');
account._transactionManager._nextSequence = 1;
account._transactionManager._request = function(tx) {
setTimeout(function() {
tx.emit('success', { });
}, 20);
};
transaction.once('presubmit', function() {
transaction.abort();
});
transaction.complete = function() {
return this;
};
function submitCallback(err, res) {
transaction.submit(function(err, res) {
setImmediate(function() {
assert(err);
assert.strictEqual(err.result, 'tejAbort');
done();
});
};
transaction.submit(submitCallback);
transaction.abort();
});
});
});