Skip to content
This repository has been archived by the owner on Jun 11, 2024. It is now read-only.

Commit

Permalink
Add transaction parameter to methods of module and logic layer
Browse files Browse the repository at this point in the history
  • Loading branch information
nazarhussain committed Jan 8, 2018
1 parent 36eda72 commit 5d01090
Show file tree
Hide file tree
Showing 15 changed files with 142 additions and 137 deletions.
19 changes: 10 additions & 9 deletions logic/account.js
Original file line number Diff line number Diff line change
Expand Up @@ -569,8 +569,9 @@ Account.prototype.toDB = function (raw) {
* @param {function} cb - Callback function.
* @returns {setImmediateCallback} Returns null or Object with database data.
*/
Account.prototype.get = function (filter, fields, cb) {
Account.prototype.get = function (filter, fields, cb, tx) {
if (typeof(fields) === 'function') {
tx = cb;
cb = fields;
fields = this.fields.map(function (field) {
return field.alias || field.field;
Expand All @@ -579,7 +580,7 @@ Account.prototype.get = function (filter, fields, cb) {

this.getAll(filter, fields, function (err, data) {
return setImmediate(cb, err, data && data.length ? data[0] : null);
});
}, tx);
};

/**
Expand All @@ -589,7 +590,7 @@ Account.prototype.get = function (filter, fields, cb) {
* @param {function} cb - Callback function.
* @returns {setImmediateCallback} data with rows | 'Account#getAll error'.
*/
Account.prototype.getAll = function (filter, fields, cb) {
Account.prototype.getAll = function (filter, fields, cb, tx) {
if (typeof fields === 'function') {
cb = fields;
fields = this.fields.map(function (field) {
Expand Down Expand Up @@ -693,7 +694,7 @@ Account.prototype.getAll = function (filter, fields, cb) {

var self = this;

this.scope.db.query(sql.query, sql.values).then(function (rows) {
(tx || this.scope.db).query(sql.query, sql.values).then(function (rows) {
var lastBlock = modules.blocks.lastBlock.get();
// If the last block height is undefined, it means it's a genesis block with height = 1
// look for a constant for total supply
Expand Down Expand Up @@ -761,7 +762,7 @@ Account.prototype.calculateProductivity = function (producedBlocks, missedBlocks
* @param {function} cb - Callback function.
* @returns {setImmediateCallback} cb | 'Account#set error'.
*/
Account.prototype.set = function (address, fields, cb) {
Account.prototype.set = function (address, fields, cb, tx) {
// Verify public key
this.verifyPublicKey(fields.publicKey);

Expand All @@ -777,7 +778,7 @@ Account.prototype.set = function (address, fields, cb) {
modifier: this.toDB(fields)
});

this.scope.db.none(sql.query, sql.values).then(function () {
(tx || this.scope.db).none(sql.query, sql.values).then(function () {
return setImmediate(cb);
}).catch(function (err) {
library.logger.error(err.stack);
Expand All @@ -792,7 +793,7 @@ Account.prototype.set = function (address, fields, cb) {
* @param {function} cb - Callback function.
* @returns {setImmediateCallback|cb|done} Multiple returns: done() or error.
*/
Account.prototype.merge = function (address, diff, cb) {
Account.prototype.merge = function (address, diff, cb, tx) {
var update = {}, remove = {}, insert = {}, insert_object = {}, remove_object = {};

// Verify public key
Expand Down Expand Up @@ -945,7 +946,7 @@ Account.prototype.merge = function (address, diff, cb) {
if (err) {
return setImmediate(cb, err);
}
self.get({address: address}, cb);
self.get({address: address}, cb, tx);
}
}

Expand All @@ -961,7 +962,7 @@ Account.prototype.merge = function (address, diff, cb) {
return done();
}

this.scope.db.none(queries).then(function () {
(tx || this.scope.db).none(queries).then(function () {
return done();
}).catch(function (err) {
library.logger.error(err.stack);
Expand Down
10 changes: 5 additions & 5 deletions logic/dapp.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ DApp.prototype.calculateFee = function (transaction, sender) {
* @param {function} cb
* @return {setImmediateCallback} errors | transaction
*/
DApp.prototype.verify = function (transaction, sender, cb) {
DApp.prototype.verify = function (transaction, sender, cb, tx) {
var i;

if (transaction.recipientId) {
Expand Down Expand Up @@ -146,7 +146,7 @@ DApp.prototype.verify = function (transaction, sender, cb) {
}
}

library.db.dapps.getExisting({
(tx || library.db).dapps.getExisting({
name: transaction.asset.dapp.name,
link: transaction.asset.dapp.link || null,
transactionId: transaction.id
Expand Down Expand Up @@ -239,7 +239,7 @@ DApp.prototype.getBytes = function (transaction) {
* @param {function} cb
* @return {setImmediateCallback} cb
*/
DApp.prototype.apply = function (transaction, block, sender, cb) {
DApp.prototype.apply = function (transaction, block, sender, cb, tx) {
delete __private.unconfirmedNames[transaction.asset.dapp.name];
delete __private.unconfirmedLinks[transaction.asset.dapp.link];

Expand All @@ -265,7 +265,7 @@ DApp.prototype.undo = function (transaction, block, sender, cb) {
* @param {function} cb
* @return {setImmediateCallback} cb|errors
*/
DApp.prototype.applyUnconfirmed = function (transaction, sender, cb) {
DApp.prototype.applyUnconfirmed = function (transaction, sender, cb, tx) {
if (__private.unconfirmedNames[transaction.asset.dapp.name]) {
return setImmediate(cb, 'Application name already exists');
}
Expand All @@ -287,7 +287,7 @@ DApp.prototype.applyUnconfirmed = function (transaction, sender, cb) {
* @param {function} cb
* @return {setImmediateCallback} cb
*/
DApp.prototype.undoUnconfirmed = function (transaction, sender, cb) {
DApp.prototype.undoUnconfirmed = function (transaction, sender, cb, tx) {
delete __private.unconfirmedNames[transaction.asset.dapp.name];
delete __private.unconfirmedLinks[transaction.asset.dapp.link];

Expand Down
34 changes: 17 additions & 17 deletions logic/delegate.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ Delegate.prototype.calculateFee = function (transaction, sender) {
* @param {function} cb - Callback function.
* @returns {setImmediateCallback|Object} Returns error if invalid parameter | transaction validated.
*/
Delegate.prototype.verify = function (transaction, sender, cb) {
Delegate.prototype.verify = function (transaction, sender, cb, tx) {
if (transaction.recipientId) {
return setImmediate(cb, 'Invalid recipient');
}
Expand Down Expand Up @@ -100,7 +100,7 @@ Delegate.prototype.verify = function (transaction, sender, cb) {

self.checkConfirmed(transaction, function (err) {
return setImmediate(cb, err, transaction);
});
}, tx);
};

/**
Expand Down Expand Up @@ -144,18 +144,18 @@ Delegate.prototype.getBytes = function (transaction) {
* @param {string} isDelegate - Key to check transaction with (isDelegate / u_isDelegate).
* @param {function} cb - Callback function.
*/
Delegate.prototype.checkDuplicates = function (transaction, username, isDelegate, cb) {
Delegate.prototype.checkDuplicates = function (transaction, username, isDelegate, cb, tx) {
async.parallel({
duplicatedDelegate: function (eachCb) {
var query = {};
query[isDelegate] = 1;
query.publicKey = transaction.senderPublicKey;
return modules.accounts.getAccount(query, [username], eachCb);
return modules.accounts.getAccount(query, [username], eachCb, tx);
},
duplicatedUsername: function (eachCb) {
var query = {};
query[username] = transaction.asset.delegate.username;
return modules.accounts.getAccount(query, [username], eachCb);
return modules.accounts.getAccount(query, [username], eachCb, tx);
}
}, function (err, res) {
if (err) {
Expand All @@ -176,26 +176,26 @@ Delegate.prototype.checkDuplicates = function (transaction, username, isDelegate
* @param {transaction} transaction
* @param {function} cb - Callback function.
*/
Delegate.prototype.checkConfirmed = function (transaction, cb) {
Delegate.prototype.checkConfirmed = function (transaction, cb, tx) {
self.checkDuplicates(transaction, 'username', 'isDelegate', function (err) {
if (err && exceptions.delegates.indexOf(transaction.id) > -1) {
library.logger.debug(err);
library.logger.debug(JSON.stringify(transaction));
err = null;
}
return setImmediate(cb, err, transaction);
});
}, tx);
};

/**
* Checks if unconfirmed delegate is already registered.
* @param {transaction} transaction
* @param {function} cb - Callback function.
*/
Delegate.prototype.checkUnconfirmed = function (transaction, cb) {
Delegate.prototype.checkUnconfirmed = function (transaction, cb, tx) {
self.checkDuplicates(transaction, 'u_username', 'u_isDelegate', function (err) {
return setImmediate(cb, err, transaction);
});
}, tx);
};

/**
Expand All @@ -207,7 +207,7 @@ Delegate.prototype.checkUnconfirmed = function (transaction, cb) {
* @param {function} cb - Callback function.
* @todo Delete unused block parameter.
*/
Delegate.prototype.apply = function (transaction, block, sender, cb) {
Delegate.prototype.apply = function (transaction, block, sender, cb, tx) {
var data = {
publicKey: transaction.senderPublicKey,
address: sender.address,
Expand All @@ -220,10 +220,10 @@ Delegate.prototype.apply = function (transaction, block, sender, cb) {

async.series([
function (seriesCb) {
self.checkConfirmed(transaction, seriesCb);
self.checkConfirmed(transaction, seriesCb, tx);
},
function (seriesCb) {
modules.accounts.setAccountAndGet(data, seriesCb);
modules.accounts.setAccountAndGet(data, seriesCb, tx);
}
], cb);
};
Expand Down Expand Up @@ -257,7 +257,7 @@ Delegate.prototype.undo = function (transaction, block, sender, cb) {
* @param {account} sender
* @param {function} cb - Callback function.
*/
Delegate.prototype.applyUnconfirmed = function (transaction, sender, cb) {
Delegate.prototype.applyUnconfirmed = function (transaction, sender, cb, tx) {
var data = {
publicKey: transaction.senderPublicKey,
address: sender.address,
Expand All @@ -269,10 +269,10 @@ Delegate.prototype.applyUnconfirmed = function (transaction, sender, cb) {

async.series([
function (seriesCb) {
self.checkUnconfirmed(transaction, seriesCb);
self.checkUnconfirmed(transaction, seriesCb, tx);
},
function (seriesCb) {
modules.accounts.setAccountAndGet(data, seriesCb);
modules.accounts.setAccountAndGet(data, seriesCb, tx);
}
], cb);
};
Expand All @@ -284,7 +284,7 @@ Delegate.prototype.applyUnconfirmed = function (transaction, sender, cb) {
* @param {account} sender
* @param {function} cb - Callback function.
*/
Delegate.prototype.undoUnconfirmed = function (transaction, sender, cb) {
Delegate.prototype.undoUnconfirmed = function (transaction, sender, cb, tx) {
var data = {
address: sender.address,
u_isDelegate: 0,
Expand All @@ -293,7 +293,7 @@ Delegate.prototype.undoUnconfirmed = function (transaction, sender, cb) {
u_username: null
};

modules.accounts.setAccountAndGet(data, cb);
modules.accounts.setAccountAndGet(data, cb, tx);
};

Delegate.prototype.schema = {
Expand Down
14 changes: 7 additions & 7 deletions logic/inTransfer.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ InTransfer.prototype.calculateFee = function (transaction, sender) {
* @param {function} cb
* @return {setImmediateCallback} errors message | transaction
*/
InTransfer.prototype.verify = function (transaction, sender, cb) {
InTransfer.prototype.verify = function (transaction, sender, cb, tx) {
if (transaction.recipientId) {
return setImmediate(cb, 'Invalid recipient');
}
Expand All @@ -67,7 +67,7 @@ InTransfer.prototype.verify = function (transaction, sender, cb) {
return setImmediate(cb, 'Invalid transaction asset');
}

library.db.dapps.countByTransactionId(transaction.asset.inTransfer.dappId).then(function (row) {
(tx || library.db).dapps.countByTransactionId(transaction.asset.inTransfer.dappId).then(function (row) {
if (row.count === 0) {
return setImmediate(cb, 'Application not found: ' + transaction.asset.inTransfer.dappId);
} else {
Expand Down Expand Up @@ -122,7 +122,7 @@ InTransfer.prototype.getBytes = function (transaction) {
* @param {function} cb - Callback function
* @return {setImmediateCallback} error, cb
*/
InTransfer.prototype.apply = function (transaction, block, sender, cb) {
InTransfer.prototype.apply = function (transaction, block, sender, cb, tx) {
shared.getGenesis({dappid: transaction.asset.inTransfer.dappId}, function (err, res) {
if (err) {
return setImmediate(cb, err);
Expand All @@ -135,8 +135,8 @@ InTransfer.prototype.apply = function (transaction, block, sender, cb) {
round: slots.calcRound(block.height)
}, function (err) {
return setImmediate(cb, err);
});
});
}, tx);
}, tx);
};

/**
Expand Down Expand Up @@ -175,7 +175,7 @@ InTransfer.prototype.undo = function (transaction, block, sender, cb) {
* @param {function} cb
* @return {setImmediateCallback} cb
*/
InTransfer.prototype.applyUnconfirmed = function (transaction, sender, cb) {
InTransfer.prototype.applyUnconfirmed = function (transaction, sender, cb, tx) {
return setImmediate(cb);
};

Expand All @@ -185,7 +185,7 @@ InTransfer.prototype.applyUnconfirmed = function (transaction, sender, cb) {
* @param {function} cb
* @return {setImmediateCallback} cb
*/
InTransfer.prototype.undoUnconfirmed = function (transaction, sender, cb) {
InTransfer.prototype.undoUnconfirmed = function (transaction, sender, cb, tx) {
return setImmediate(cb);
};

Expand Down
16 changes: 8 additions & 8 deletions logic/multisignature.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ Multisignature.prototype.calculateFee = function (transaction, sender) {
* @returns {setImmediateCallback|transaction} returns error string if invalid parameter |
* transaction validated.
*/
Multisignature.prototype.verify = function (transaction, sender, cb) {
Multisignature.prototype.verify = function (transaction, sender, cb, tx) {
if (!transaction.asset || !transaction.asset.multisignature) {
return setImmediate(cb, 'Invalid transaction asset');
}
Expand Down Expand Up @@ -219,7 +219,7 @@ Multisignature.prototype.getBytes = function (transaction, skip) {
* @param {function} cb - Callback function.
* @return {setImmediateCallback} for errors
*/
Multisignature.prototype.apply = function (transaction, block, sender, cb) {
Multisignature.prototype.apply = function (transaction, block, sender, cb, tx) {
__private.unconfirmedSignatures[sender.address] = false;

library.logic.account.merge(sender.address, {
Expand All @@ -244,9 +244,9 @@ Multisignature.prototype.apply = function (transaction, block, sender, cb) {
publicKey: key
}, function (err) {
return setImmediate(cb, err);
});
}, tx);
}, cb);
});
}, tx);
};

/**
Expand Down Expand Up @@ -282,7 +282,7 @@ Multisignature.prototype.undo = function (transaction, block, sender, cb) {
* @param {function} cb - Callback function.
* @return {setImmediateCallback} For error.
*/
Multisignature.prototype.applyUnconfirmed = function (transaction, sender, cb) {
Multisignature.prototype.applyUnconfirmed = function (transaction, sender, cb, tx) {
if (__private.unconfirmedSignatures[sender.address]) {
return setImmediate(cb, 'Signature on this account is pending confirmation');
}
Expand All @@ -295,7 +295,7 @@ Multisignature.prototype.applyUnconfirmed = function (transaction, sender, cb) {
u_multilifetime: transaction.asset.multisignature.lifetime
}, function (err) {
return setImmediate(cb);
});
}, tx);
};

/**
Expand All @@ -308,7 +308,7 @@ Multisignature.prototype.applyUnconfirmed = function (transaction, sender, cb) {
* @param {function} cb - Callback function.
* @return {setImmediateCallback} For error.
*/
Multisignature.prototype.undoUnconfirmed = function (transaction, sender, cb) {
Multisignature.prototype.undoUnconfirmed = function (transaction, sender, cb, tx) {
var multiInvert = Diff.reverse(transaction.asset.multisignature.keysgroup);

__private.unconfirmedSignatures[sender.address] = false;
Expand All @@ -319,7 +319,7 @@ Multisignature.prototype.undoUnconfirmed = function (transaction, sender, cb) {
u_multilifetime: -transaction.asset.multisignature.lifetime
}, function (err) {
return setImmediate(cb, err);
});
}, tx);
};

/**
Expand Down
Loading

0 comments on commit 5d01090

Please sign in to comment.