UNPKG

@xorddotcom/shield

Version:

p align="center" > <img src="https://xord.notion.site/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F283b98b7-fdae-4e5a-acaf-248242084e4a%2FICON.png?table=block&id=5306223c-a4f7-45d1-9f54-b9a5f4004cd6&spaceId=49976899-64a1-40f

115 lines 4.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.logSignals = exports.circomLog = exports.log = void 0; const chalk = require("chalk"); const binfileutils_1 = require("@iden3/binfileutils"); const witness_1 = require("./witness"); // @ts-ignore const ffjavascript_1 = require("ffjavascript"); const utils_1 = require("./utils"); const TYPES = { info: "info", error: "error", success: "success", warning: "warning", normal: "normal", }; const COLORS = { [TYPES.info]: { text: chalk.blue, background: chalk.black.bgBlue, }, [TYPES.success]: { text: chalk.green, background: chalk.black.bgGreen, }, [TYPES.error]: { text: chalk.red, background: chalk.black.bgRed, }, [TYPES.warning]: { text: chalk.yellow, background: chalk.black.bgYellow, }, [TYPES.normal]: { text: chalk.white, background: chalk.black.white, }, }; const log = (message = "", type = TYPES.info) => { const colorType = COLORS[type]; console.log(`${colorType.text(message)}\n`); }; exports.log = log; const circomLog = (message = "") => { console.log(chalk.yellow.bold(`CIRCUIT LOG:`), chalk.blue.bold(`${message}\n`)); }; exports.circomLog = circomLog; const logSignals = async (r1cs, wtnsFile, symFile, jsonInputs) => { if (r1cs) { const { fd: fdWtns, sections: sectionsWtns } = await (0, binfileutils_1.readBinFile)(wtnsFile, "wtns", 2, 1 << 25, 1 << 23); const { n8 } = await (0, witness_1.readWtnsHeader)(fdWtns, sectionsWtns); const buffWitness = await (0, binfileutils_1.readSection)(fdWtns, sectionsWtns, 2); let outputPrefixes = {}; let lastPos = 0; let dec = new TextDecoder("utf-8"); for (let i = 0; i < symFile.length; i++) { if (symFile[i] === 0x0a) { let line = dec.decode(symFile.slice(lastPos, i)); let wireNo = +line.split(",")[0]; if (wireNo <= r1cs.nOutputs) { outputPrefixes[wireNo] = line.split(",")[3].replace("main.", "") + " = "; } lastPos = i; } } if (r1cs.nOutputs > 0) { let outputSignals = {}; let outputIndex = 1; for (; outputIndex <= r1cs.nOutputs; outputIndex++) { const b = buffWitness.slice(outputIndex * n8, outputIndex * n8 + n8); const outputPrefix = outputPrefixes[outputIndex] || ""; try { outputSignals[outputPrefix.replace("=", "").trim()] = ffjavascript_1.Scalar.fromRprLE(b).toString(); } catch (err) { outputSignals[outputPrefix.replace("=", "").trim()] = "0"; } } if (Object.keys(outputSignals).length !== 0) { console.log(chalk.cyan(`\nOutput Signals:\n`)); console.table(outputSignals); } else { console.log(chalk.yellow(`No output signal found:\n`)); } } const sortedSignals = Object.keys(jsonInputs).sort(); let inputSignals = {}; for (const key of sortedSignals) { if (Object.prototype.hasOwnProperty.call(jsonInputs, key)) { const element = jsonInputs[key]; if (typeof element === "object") { inputSignals = { ...inputSignals, ...(0, utils_1.arrayLogger)("matrix", element) }; } else { inputSignals[key] = jsonInputs[key]; } } else { } } if (Object.keys(jsonInputs).length !== 0) { console.log(chalk.cyan(`\nInput Signals:\n`)); console.table(inputSignals); } else { console.log(chalk.yellow(`No input signal found:\n`)); } await fdWtns.close(); } }; exports.logSignals = logSignals; //# sourceMappingURL=logger.js.map