UNPKG

vasku

Version:

TVM-Solidity contract development framework

81 lines (80 loc) 2.67 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.printError = exports.printEmptyLine = exports.printMessage = exports.prettifyBalance = exports.printContract = void 0; const colors_1 = __importDefault(require("colors")); const suffixes_1 = require("../../../utils/suffixes"); /* eslint-disable */ const types = { '-1': 'Not found', '0': 'Un init', '1': 'Active', '2': 'Frozen', '3': 'Non exist' }; /* eslint-disable */ const colorize = { '-1': colors_1.default.gray, '0': colors_1.default.yellow, '1': colors_1.default.green, '2': colors_1.default.blue, '3': colors_1.default.red }; /** * Read account data from GraphQL and output to the terminal * @param contract contract */ async function printContract(contract) { const contractName = contract.constructor.name; const address = await contract.address(); const balance = prettifyBalance(await contract.balance()); const accountType = await contract.accountType(); const type = types[await contract.accountType()]; const colorizeFunction = colorize[accountType]; console.log(`${colors_1.default.gray(contractName)}\n` + `${colors_1.default.white(address)}\n` + `${colorizeFunction(`${balance}${type}`)}`); } exports.printContract = printContract; /** * Return balance in human-readable format * @param balance * @example * prettifyBalance(1234567890123456789n) * @return * '1,234,567,890.123,456,789' */ function prettifyBalance(balance) { const integerPartOfNumber = balance / BigInt(suffixes_1.B); const integerPartOfNumberText = integerPartOfNumber.toLocaleString(); const fractionalPartOfNumber = balance % BigInt(suffixes_1.B) + BigInt(suffixes_1.B); const fractionalPartOfNumberText = fractionalPartOfNumber.toLocaleString('en', { maximumFractionDigits: 10 }).substring(2); const text = `${integerPartOfNumberText}${colors_1.default.cyan('.')}${fractionalPartOfNumberText}`; return text.replaceAll(',', colors_1.default.gray(',')); } exports.prettifyBalance = prettifyBalance; /** * Print message between two empty lines */ async function printMessage(message) { console.log(); console.log(`${message} ...`); console.log(); } exports.printMessage = printMessage; /** * Print empty line */ async function printEmptyLine() { console.log(); } exports.printEmptyLine = printEmptyLine; /** * Print error */ async function printError(e) { console.error(e); } exports.printError = printError;