solium-plugin-security
Version:
Official Solium Plugin for Security-related lint rules
43 lines (32 loc) • 1.04 kB
JavaScript
/**
* @fileoverview Discourage use of 'tx.origin' global variable.
* @author Raghav Dua <duaraghav8@gmail.com>
*/
;
module.exports = {
meta: {
docs: {
description: "Discourage use of 'tx.origin' global variable.",
recommended: true,
type: "error"
},
schema: []
},
create(context) {
function isAtxoriginExpression(object, property) {
return (object.type === "Identifier" &&
property.type === "Identifier" && object.name === "tx" && property.name === "origin");
}
function reportIfIstxorigin(emitted) {
if (emitted.exit) { return; }
const {node} = emitted, {object, property} = node;
isAtxoriginExpression(object, property) && context.report({
node,
message: "Consider using 'msg.sender' in place of 'tx.origin'."
});
}
return {
MemberExpression: reportIfIstxorigin
};
}
};