@moonsong-labs/moonwall-util
Version:
Testing framework for the Moon family of projects
48 lines (45 loc) • 1.65 kB
JavaScript
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
};