@kba-tools/genesis-tool
Version:
A forked repo from ConsenSys which helps to generate genesis block for Besu Network with xemptyBlockPeriod field.
134 lines • 10.7 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getYesNoValidator = getYesNoValidator;
exports.integerValidator = integerValidator;
exports.stringValidator = stringValidator;
exports.passwordValidator = passwordValidator;
exports.allocStringValidator = allocStringValidator;
const chalk_1 = __importDefault(require("chalk"));
function getYesNoValidator(question, nextQuestion, defaultResponse) {
return (rawInput, answers) => {
const normalizedInput = rawInput.toLowerCase();
if (defaultResponse && !normalizedInput) {
answers[question.name] = defaultResponse === "y";
return nextQuestion;
}
else if (normalizedInput === "y" || normalizedInput === "n") {
answers[question.name] = normalizedInput === "y";
return nextQuestion;
}
else {
console.log(chalk_1.default.red("Sorry, but I didn't understand your answer. Please select Y or N,\n" +
"or just hit enter if you want the default.\n"));
return question;
}
};
}
function integerValidator(question, nextQuestion, defaultResponse) {
return (rawInput, answers) => {
const normalizedInput = parseInt(rawInput, 10);
if (defaultResponse && isNaN(normalizedInput)) {
answers[question.name] = defaultResponse;
return nextQuestion;
}
else if (normalizedInput < 0 || isNaN(normalizedInput)) {
console.log(chalk_1.default.red("Sorry, but I didn't understand your answer. Please enter a valid integer.\n"));
return question;
}
else {
answers[question.name] = normalizedInput;
return nextQuestion;
}
};
}
function stringValidator(question, nextQuestion, defaultResponse) {
return (rawInput, answers) => {
const normalizedInput = rawInput.toLowerCase();
if (defaultResponse && normalizedInput === "") {
answers[question.name] = defaultResponse;
return nextQuestion;
}
else if (typeof normalizedInput === "string" && normalizedInput !== "") {
answers[question.name] = normalizedInput;
return nextQuestion;
}
else {
console.log(chalk_1.default.red("Sorry, but I didn't understand your answer. Please enter a valid string,\n" +
"or just hit enter default is available.\n"));
return question;
}
};
}
function passwordValidator(question, nextQuestion) {
return (rawInput, answers) => {
const normalizedInput = rawInput.toString();
if (normalizedInput === "") {
answers[question.name] = normalizedInput;
return nextQuestion;
}
else if (typeof normalizedInput === "string" && normalizedInput !== "") {
answers[question.name] = normalizedInput;
return nextQuestion;
}
else {
console.log(chalk_1.default.red("Sorry, but I didn't understand your answer. Please enter a valid string,\n" +
"or just hit enter default is available.\n"));
return question;
}
};
}
const allocJsonChecks = (jsonAlloc) => {
try {
const parsedJSON = JSON.parse(jsonAlloc);
if (Object.keys(parsedJSON).length === 0) {
return { status: false, message: "alloc must have at least one address" };
}
for (const [key, value] of Object.entries(parsedJSON)) {
if (typeof key !== "string") {
return {
status: false,
message: "Account key must be a string",
};
}
if (typeof value.balance !== "string") {
return {
status: false,
message: "Account's balance must be a string",
};
}
}
return { status: true, message: "Alloc is valid" };
}
catch (e) {
return { status: false, message: "alloc must be a valid json object" };
}
};
function allocStringValidator(question, nextQuestion, defaultResponse) {
return (rawInput, answers) => {
const normalizedInput = rawInput.toLowerCase();
if (defaultResponse && normalizedInput === "") {
answers[question.name] = defaultResponse;
return nextQuestion;
}
else if (typeof normalizedInput === "string" && normalizedInput !== "") {
const additionalChecks = allocJsonChecks(normalizedInput);
if (additionalChecks.status) {
answers[question.name] = normalizedInput;
return nextQuestion;
}
else {
console.log(chalk_1.default.red(additionalChecks.message));
return question;
}
}
else {
console.log(chalk_1.default.red("Sorry, but I didn't understand your answer. Please enter a valid string,\n" +
"or just hit enter default is available.\n"));
return question;
}
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXN0aW9ucy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFJQSw4Q0F1QkM7QUFFRCw0Q0FzQkM7QUFFRCwwQ0F1QkM7QUFFRCw4Q0FzQkM7QUE0QkQsb0RBOEJDO0FBNUpELGtEQUEwQjtBQUUxQixTQUFnQixpQkFBaUIsQ0FDL0IsUUFBc0IsRUFDdEIsWUFBMkIsRUFDM0IsZUFBMkI7SUFFM0IsT0FBTyxDQUFDLFFBQWdCLEVBQUUsT0FBa0IsRUFBRSxFQUFFO1FBQzlDLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMvQyxJQUFJLGVBQWUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsZUFBZSxLQUFLLEdBQUcsQ0FBQztZQUNqRCxPQUFPLFlBQVksQ0FBQztRQUN0QixDQUFDO2FBQU0sSUFBSSxlQUFlLEtBQUssR0FBRyxJQUFJLGVBQWUsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUM5RCxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLGVBQWUsS0FBSyxHQUFHLENBQUM7WUFDakQsT0FBTyxZQUFZLENBQUM7UUFDdEIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsR0FBRyxDQUNULGVBQUssQ0FBQyxHQUFHLENBQ1AscUVBQXFFO2dCQUNuRSw4Q0FBOEMsQ0FDakQsQ0FDRixDQUFDO1lBQ0YsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FDOUIsUUFBc0IsRUFDdEIsWUFBMkIsRUFDM0IsZUFBd0I7SUFFeEIsT0FBTyxDQUFDLFFBQWdCLEVBQUUsT0FBa0IsRUFBRSxFQUFFO1FBQzlDLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxRQUFR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