UNPKG

@moonsong-labs/moonwall-util

Version:

Testing framework for the Moon family of projects

48 lines (45 loc) 1.65 kB
import { mapExtrinsics } from "./chunk-PB4BRUCQ.js"; // src/functions/logging.ts import "@moonbeam-network/api-augment"; import Debug from "debug"; function setupLogger(name) { const debug = Debug(`test:${name}`); Debug.enable("test:*"); Debug.log = console.info.bind(console); return debug; } function log(...msg) { if (process.argv && process.argv[2] && process.argv[2] === "--printlogs") { console.log(...msg); } } var printTokens = (api, tokens, decimals = 2, pad = 9) => { return `${(Math.ceil(Number(tokens / 10n ** BigInt(api.registry.chainDecimals[0] - decimals))) / 10 ** decimals).toString().padStart(pad)} ${api.registry.chainTokens[0]}`; }; var printEvents = async (api, blockHash) => { blockHash = blockHash != void 0 ? blockHash : (await api.rpc.chain.getBlockHash()).toString(); const apiAt = await api.at(blockHash); const { block } = await api.rpc.chain.getBlock(blockHash); const allRecords = await apiAt.query.system.events(); const txsWithEvents = mapExtrinsics(block.extrinsics, allRecords); console.log(`===== Block #${block.header.number.toString()}: ${blockHash}`); console.log(block.header.toHuman()); console.log( txsWithEvents.map( ({ extrinsic, events }, i) => ` [${i}]: ${extrinsic.method.section.toString()}. ${extrinsic.method.method.toString()} - 0x${Buffer.from(extrinsic.data).toString("hex")} ${events.map( (event) => ` * ${event.section.toString()}.${event.method.toString()}: ${event.data.map((datum) => ` - ${datum.toHex()}`).join("\n")}` ).join("\n")}` ).join("\n") ); }; export { setupLogger, log, printTokens, printEvents };