@sentio/truffle-fetch-and-compile
Version:
Used to obtain external verified sources and compile them
48 lines • 1.75 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.MultipleRecognizer = void 0;
const debug_1 = __importDefault(require("debug"));
const debug = (0, debug_1.default)("fetch-and-compile:multiple");
const web3_utils_1 = __importDefault(require("web3-utils"));
class MultipleRecognizer {
constructor(addresses) {
this.addressesToSkip = new Set();
this.results = {};
this.failureLog = {};
this.unrecognizedAddresses = [
...new Set(addresses.map(web3_utils_1.default.toChecksumAddress))
]; //remove duplicates (checksum to make case-insensitive & canonical) and clone
}
getResults() {
return {
results: this.results,
failures: this.failureLog
};
}
/*
* Interface methods follow
*/
isAddressUnrecognized(address) {
return this.unrecognizedAddresses.includes(address);
}
getAnUnrecognizedAddress() {
return this.unrecognizedAddresses.find(address => !this.addressesToSkip.has(address));
}
markUnrecognizable(address, reason, error) {
this.failureLog[address] = { reason, error };
this.addressesToSkip.add(address);
}
markBadFetcher(_fetcherName) {
//do nothing
}
addCompiledInfo(info, address) {
this.results[address] = info;
const index = this.unrecognizedAddresses.indexOf(address);
this.unrecognizedAddresses.splice(index, 1); //delete the address from the array
}
}
exports.MultipleRecognizer = MultipleRecognizer;
//# sourceMappingURL=multiple.js.map