pact-toolbox
Version:
A tool to help you build, test and deploy your Pact smart contracts
50 lines (48 loc) • 2.11 kB
JavaScript
const require_chunk = require('./chunk-CUT6urMc.cjs');
const __pact_toolbox_test = require_chunk.__toESM(require("@pact-toolbox/test"));
const __pact_toolbox_utils = require_chunk.__toESM(require("@pact-toolbox/utils"));
//#region src/playground.ts
const table = {};
async function bench(label, f) {
const start = process.hrtime();
await f();
const end = process.hrtime(start);
const time = end[0] * 1e3 + end[1] / 1e6;
table[label] = time;
console.log(`${label}: ${time}ms`);
return time;
}
async function main() {
bench("localPactServer", async () => {
const local = await (0, __pact_toolbox_test.createPactTestEnv)({ network: "local" });
await local.start();
await local.client.deployContract("hello-world.pact");
const signer = local.client.getSignerKeys();
await local.client.execution("(free.hello-world.say-hello \"Salama\")").withSigner(signer.publicKey).sign().submitAndListen();
await local.stop();
});
bench("devnetOnDemand", async () => {
const devnetOnDemand = await (0, __pact_toolbox_test.createPactTestEnv)({ network: "devnetOnDemand" });
await devnetOnDemand.start();
await devnetOnDemand.client.deployContract("hello-world.pact");
const signer = devnetOnDemand.client.getSignerKeys();
await devnetOnDemand.client.execution("(free.hello-world.say-hello \"Salama\")").withSigner(signer.publicKey).sign().submitAndListen();
await devnetOnDemand.stop();
});
bench("devnet", async () => {
const devnet = await (0, __pact_toolbox_test.createPactTestEnv)({ network: "devnet" });
await devnet.start();
await devnet.client.deployContract("hello-world.pact");
const signer = devnet.client.getSignerKeys();
await devnet.client.execution("(free.hello-world.say-hello \"Salama\")").withSigner(signer.publicKey).sign().submitAndListen();
await devnet.stop();
});
const fastest = Object.entries(table).reduce((acc, [key, value]) => {
if (value < acc[1]) return [key, value];
return acc;
}, ["", Infinity]);
__pact_toolbox_utils.logger.info(`Fastest: ${fastest[0]}: ${fastest[1]}ms`);
console.table(table);
}
main().catch(console.error);
//#endregion