voluptatumnemo
Version:
Solidity Documentation Generator
32 lines (25 loc) • 769 B
JavaScript
const enumerable = require("linq");
module.exports = {
getImplementations: function(source, contracts) {
const implementations = [];
for(let i in contracts) {
const contract = contracts[i];
if(!contract.ast) {
continue;
}
const node = enumerable.from(contract.ast.nodes).where(function(x) {
return x.baseContracts && x.baseContracts.length;
}).firstOrDefault();
if(node) {
const hasImplementation = enumerable.from(node.baseContracts).where(function(x) {
return x.baseName.name === source.contractName;
}).toArray().length > 0;
if(hasImplementation) {
implementations.push(contract);
}
}
}
return implementations;
}
};
;