UNPKG

pact-toolbox

Version:

A tool to help you build, test and deploy your Pact smart contracts

50 lines (48 loc) 1.94 kB
import { createPactTestEnv } from "@pact-toolbox/test"; import { logger } from "@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 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 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 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]); logger.info(`Fastest: ${fastest[0]}: ${fastest[1]}ms`); console.table(table); } main().catch(console.error); //#endregion //# sourceMappingURL=playground.js.map