Skip to content

Commit

Permalink
Relocate presubmit emission to immediately before transaction submit
Browse files Browse the repository at this point in the history
  • Loading branch information
wltsmrz committed Nov 14, 2014
1 parent 5f3cf72 commit 7a1feaa
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 20 deletions.
6 changes: 3 additions & 3 deletions src/js/ripple/transactionmanager.js
Original file line number Diff line number Diff line change
Expand Up @@ -365,8 +365,6 @@ TransactionManager.prototype._request = function(tx) {
return tx.emit('error', new RippleError('tejLocalSigningRequired', message));
}

tx.emit('presubmit');

if (tx.finalized) {
return;
}
Expand Down Expand Up @@ -557,9 +555,11 @@ TransactionManager.prototype._request = function(tx) {
return;
}

tx.emit('presubmit');

submitRequest.timeout(self._submissionTimeout, requestTimeout);
tx.submissions = submitRequest.broadcast();

tx.submissions = submitRequest.broadcast();
tx.attempts++;
tx.emit('postsubmit');
};
Expand Down
35 changes: 18 additions & 17 deletions test/transaction-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -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');

account._transactionManager._nextSequence = 1;
var server = new Server(remote, 'wss://s1.ripple.com:443');
server._computeFee = function() { return '12'; };
server._connected = true;

account._transactionManager._request = function(tx) {
setTimeout(function() {
tx.emit('success', { });
}, 20);
};
remote._servers.push(server);
remote._connected = true;
remote._ledger_current_index = 1;

transaction.complete = function() {
return this;
};
var transaction = new Transaction(remote).accountSet('rJaT8TafQfYJqDm8aC5n3Yx5yWEL2Ery79');
var account = remote.account('rJaT8TafQfYJqDm8aC5n3Yx5yWEL2Ery79');

function submitCallback(err, res) {
account._transactionManager._nextSequence = 1;

transaction.once('presubmit', function() {
transaction.abort();
});

transaction.submit(function(err, res) {
setImmediate(function() {
assert(err);
assert.strictEqual(err.result, 'tejAbort');
done();
});
};

transaction.submit(submitCallback);
transaction.abort();
});
});
});

Expand Down

0 comments on commit 7a1feaa

Please sign in to comment.