diff --git a/packages/contracts/source/contracts/kernel/events.ts b/packages/contracts/source/contracts/kernel/events.ts index 0a3c9078a8..7563749bc2 100644 --- a/packages/contracts/source/contracts/kernel/events.ts +++ b/packages/contracts/source/contracts/kernel/events.ts @@ -1,5 +1,5 @@ export interface EventListener { - handle(payload: { name: string; data: T }): void; + handle(payload: { name: string; data: T }): Promise; } export interface EventDispatcher { @@ -21,13 +21,5 @@ export interface EventDispatcher { dispatch(event: string, data?: T): Promise; - dispatchSeq(event: string, data?: T): Promise; - - dispatchSync(event: string, data?: T): void; - dispatchMany(events: Array<[string, T]>): Promise; - - dispatchManySeq(events: Array<[string, T]>): Promise; - - dispatchManySync(events: Array<[string, T]>): void; } diff --git a/packages/evm-api-worker/source/worker.ts b/packages/evm-api-worker/source/worker.ts index 56dd931d1f..b8d6a84cb6 100644 --- a/packages/evm-api-worker/source/worker.ts +++ b/packages/evm-api-worker/source/worker.ts @@ -29,8 +29,8 @@ export class Worker implements Contracts.Evm.Worker { this.ipcSubprocess.registerEventHandler(event, callback); } - public handle(payload: { name: string; data: unknown }): void { - void this.setPeerCount(this.p2pRepository.getPeers().length); + public async handle(payload: { name: string; data: unknown }): Promise { + await this.setPeerCount(this.p2pRepository.getPeers().length); } public async boot(flags: Contracts.Evm.WorkerFlags): Promise { diff --git a/packages/kernel/source/services/events/drivers/memory.test.ts b/packages/kernel/source/services/events/drivers/memory.test.ts index 56b21d9d5e..4fb581c7c8 100644 --- a/packages/kernel/source/services/events/drivers/memory.test.ts +++ b/packages/kernel/source/services/events/drivers/memory.test.ts @@ -6,8 +6,8 @@ import { MemoryEventDispatcher } from "./memory"; class DummyClass implements Contracts.Kernel.EventListener { public constructor(private readonly method?) {} - public handle(): void { - this.method(); + public async handle({ name, data }: { name: string; data: any }): Promise { + this.method(name, data); } } @@ -57,7 +57,7 @@ describe<{ context.emitter.listen("*", context.dummyListener); await context.emitter.dispatch("firstEvent"); - await context.emitter.dispatchSeq("firstEvent"); + await context.emitter.dispatch("firstEvent"); context.dummyCallerSpy.calledTimes(2); }); @@ -84,29 +84,23 @@ describe<{ it("should listen once", async (context) => { context.emitter.listenOnce("firstEvent", context.dummyListener); - context.emitter.dispatchSync("firstEvent"); - context.emitter.dispatchSync("firstEvent"); - context.emitter.dispatchSync("firstEvent"); - - context.dummyCallerSpy.calledOnce(); - - context.emitter.dispatchSync("firstEvent"); - context.emitter.dispatchSync("firstEvent"); - context.emitter.dispatchSync("firstEvent"); + await context.emitter.dispatch("firstEvent"); + await context.emitter.dispatch("firstEvent"); + await context.emitter.dispatch("firstEvent"); context.dummyCallerSpy.calledOnce(); }); - it("should remove an event listener", (context) => { + it("should remove an event listener", async (context) => { context.emitter.listen("firstEvent", context.dummyListener); - context.emitter.dispatchSync("firstEvent"); + await context.emitter.dispatch("firstEvent"); context.dummyCallerSpy.calledOnce(); context.emitter.forget("firstEvent", context.dummyListener); - context.emitter.dispatchSync("firstEvent"); + await context.emitter.dispatch("firstEvent"); context.dummyCallerSpy.calledOnce(); }); @@ -134,7 +128,7 @@ describe<{ it("should not execute an event listener without await", async (context) => { context.emitter.listen("firstEvent", context.dummyListener); - context.emitter.dispatch("firstEvent"); + void context.emitter.dispatch("firstEvent"); context.dummyCallerSpy.neverCalled(); }); @@ -142,55 +136,11 @@ describe<{ it("should execute a wildcard listener with await", async (context) => { context.emitter.listen("*", context.dummyListener); - await context.emitter.dispatchSeq("firstEvent"); - - context.dummyCallerSpy.calledOnce(); - }); - - it("should not execute an event listener without await (async behaviour)", async (context) => { - context.emitter.listen("firstEvent", context.dummyListener); - - context.emitter.dispatchSeq("firstEvent"); - - context.dummyCallerSpy.neverCalled(); - }); - - it("should emit all events in sequence", async (context) => { - context.emitter.listen("firstEvent", context.dummyListener); - context.emitter.listen("firstEvent", new DummyClass(context.dummyCaller)); - context.emitter.listen("firstEvent", new DummyClass(context.dummyCaller)); - - await context.emitter.dispatchSeq("firstEvent"); - - context.dummyCallerSpy.calledTimes(3); - }); - - it("should execute an event listener without await", (context) => { - context.emitter.listen("firstEvent", context.dummyListener); - - context.emitter.dispatchSync("firstEvent"); - - context.dummyCallerSpy.calledOnce(); - }); - - it("should execute a wildcard listener without await", (context) => { - context.emitter.listen("*", context.dummyListener); - - context.emitter.dispatchSync("firstEvent"); + await context.emitter.dispatch("firstEvent"); context.dummyCallerSpy.calledOnce(); }); - it("should emit all events in sequence", (context) => { - context.emitter.listen("firstEvent", context.dummyListener); - context.emitter.listen("firstEvent", new DummyClass(context.dummyCaller)); - context.emitter.listen("firstEvent", new DummyClass(context.dummyCaller)); - - context.emitter.dispatchSync("firstEvent"); - - context.dummyCallerSpy.calledTimes(3); - }); - it("should emit all events", async (context) => { context.emitter.listen("firstEvent", new DummyClass(context.dummyCaller)); context.emitter.listen("firstEvent", new DummyClass(context.dummyCaller)); @@ -206,40 +156,8 @@ describe<{ ]); context.dummyCallerSpy.calledTimes(6); - }); - - it("should emit all events", async (context) => { - context.emitter.listen("firstEvent", new DummyClass(context.dummyCaller)); - context.emitter.listen("firstEvent", new DummyClass(context.dummyCaller)); - context.emitter.listen("firstEvent", new DummyClass(context.dummyCaller)); - - context.emitter.listen("secondEvent", new DummyClass(context.dummyCaller)); - context.emitter.listen("secondEvent", new DummyClass(context.dummyCaller)); - context.emitter.listen("secondEvent", new DummyClass(context.dummyCaller)); - - await context.emitter.dispatchManySeq([ - ["firstEvent", undefined], - ["secondEvent", undefined], - ]); - - context.dummyCallerSpy.calledTimes(6); - }); - - it("should emit all events", async (context) => { - context.emitter.listen("firstEvent", new DummyClass(context.dummyCaller)); - context.emitter.listen("firstEvent", new DummyClass(context.dummyCaller)); - context.emitter.listen("firstEvent", new DummyClass(context.dummyCaller)); - - context.emitter.listen("secondEvent", new DummyClass(context.dummyCaller)); - context.emitter.listen("secondEvent", new DummyClass(context.dummyCaller)); - context.emitter.listen("secondEvent", new DummyClass(context.dummyCaller)); - - context.emitter.dispatchManySync([ - ["firstEvent", undefined], - ["secondEvent", undefined], - ]); - - context.dummyCallerSpy.calledTimes(6); + context.dummyCallerSpy.calledWith("firstEvent"); + context.dummyCallerSpy.calledWith("secondEvent"); }); it("should clear all listeners", async (context) => { diff --git a/packages/kernel/source/services/events/drivers/memory.ts b/packages/kernel/source/services/events/drivers/memory.ts index b2541d495c..cab0d7a98a 100644 --- a/packages/kernel/source/services/events/drivers/memory.ts +++ b/packages/kernel/source/services/events/drivers/memory.ts @@ -98,36 +98,10 @@ export class MemoryEventDispatcher implements Contracts.Kernel.EventDispatcher { await Promise.all(resolvers); } - public async dispatchSeq(event: string, data?: T): Promise { - await Promise.resolve(); - - for (const listener of this.#getListenersByPattern(event)) { - listener.handle({ data, name: event }); - } - } - - public dispatchSync(event: string, data?: T): void { - for (const listener of this.#getListenersByPattern(event)) { - listener.handle({ data, name: event }); - } - } - public async dispatchMany(events: Array<[string, T]>): Promise { await Promise.all(Object.values(events).map((value: [string, T]) => this.dispatch(value[0], value[1]))); } - public async dispatchManySeq(events: Array<[string, T]>): Promise { - for (const value of Object.values(events)) { - await this.dispatchSeq(value[0], value[1]); - } - } - - public dispatchManySync(events: Array<[string, T]>): void { - for (const value of Object.values(events)) { - this.dispatchSync(value[0], value[1]); - } - } - #getListenersByEvent(name: string): Set { if (!this.#listeners.has(name)) { this.#listeners.set(name, new Set()); @@ -141,7 +115,6 @@ export class MemoryEventDispatcher implements Contracts.Kernel.EventDispatcher { } #getListenersByPattern(event: string): Contracts.Kernel.EventListener[] { - // @ts-ignore const matches: string[] = mm([...this.#listeners.keys()], event); let eventListeners: Contracts.Kernel.EventListener[] = []; diff --git a/packages/kernel/source/services/events/drivers/null.test.ts b/packages/kernel/source/services/events/drivers/null.test.ts index 6f87f0f50c..bdb814fc44 100644 --- a/packages/kernel/source/services/events/drivers/null.test.ts +++ b/packages/kernel/source/services/events/drivers/null.test.ts @@ -73,18 +73,6 @@ describe("NullEventDispatcher", ({ assert, it }) => { assert.is(result, undefined); }); - it("should return undefined", async () => { - const driver = new NullEventDispatcher(); - const result = await driver.dispatchSeq("event", "data"); - assert.is(result, undefined); - }); - - it("should return undefined", () => { - const driver = new NullEventDispatcher(); - const result = driver.dispatchSync("event", "data"); - assert.is(result, undefined); - }); - it("should return undefined", async () => { const driver = new NullEventDispatcher(); const result = await driver.dispatchMany([ @@ -93,13 +81,4 @@ describe("NullEventDispatcher", ({ assert, it }) => { ]); assert.is(result, undefined); }); - - it("should return undefined", () => { - const driver = new NullEventDispatcher(); - const result = driver.dispatchManySync([ - ["event1", "data1"], - ["event2", "data2"], - ]); - assert.is(result, undefined); - }); }); diff --git a/packages/kernel/source/services/events/drivers/null.ts b/packages/kernel/source/services/events/drivers/null.ts index a7ce9fc503..c0a1384f9b 100644 --- a/packages/kernel/source/services/events/drivers/null.ts +++ b/packages/kernel/source/services/events/drivers/null.ts @@ -45,23 +45,7 @@ export class NullEventDispatcher implements Contracts.Kernel.EventDispatcher { // } - public async dispatchSeq(event: string, data?: T): Promise { - // - } - - public dispatchSync(event: string, data?: T): void { - // - } - public async dispatchMany(events: Array<[string, T]>): Promise { // } - - public async dispatchManySeq(events: Array<[string, T]>): Promise { - // - } - - public dispatchManySync(events: Array<[string, T]>): void { - // - } } diff --git a/packages/kernel/source/services/schedule/block-job.test.ts b/packages/kernel/source/services/schedule/block-job.test.ts index 4c8035504f..4b4bd4ebb2 100644 --- a/packages/kernel/source/services/schedule/block-job.test.ts +++ b/packages/kernel/source/services/schedule/block-job.test.ts @@ -1,7 +1,5 @@ import { Identifiers, Events } from "@mainsail/constants"; -import crypto from "../../../../core/bin/config/devnet/core/crypto.json"; -import { Configuration } from "../../../../crypto-config/distribution/index"; import { Application } from "../../application"; import { describe } from "@mainsail/test-runner"; import { MemoryEventDispatcher } from "../events"; @@ -18,22 +16,11 @@ describe<{ executionTime: match.number, }); - const delay = async (timeout) => { - await new Promise((resolve) => { - setTimeout(() => { - resolve(); - }, timeout); - }); - }; - beforeEach((context) => { context.app = new Application(); context.eventDispatcher = context.app.resolve(MemoryEventDispatcher); context.app.bind(Identifiers.Services.EventDispatcher.Service).toConstantValue(context.eventDispatcher); - context.app.bind(Identifiers.Cryptography.Configuration).to(Configuration).inSingletonScope(); - - context.app.get(Identifiers.Cryptography.Configuration).setConfig(crypto); context.job = context.app.resolve(BlockJob); }); @@ -49,177 +36,17 @@ describe<{ function_.neverCalled(); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 1 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 3 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 4 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 6 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 7 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 9 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 10 }); - - await delay(100); - - function_.calledTimes(3); - - spyOnDispatch.calledTimes(3); - spyOnDispatch.calledWith(Events.ScheduleEvent.BlockJobFinished, expectFinishedEventData()); - }); - - it("should execute every block", async (context) => { - const spyOnDispatch = spy(context.eventDispatcher, "dispatch"); - - const function_ = spyFn(); - - context.job.everyBlock().execute(() => { - function_.call(); - }); - - function_.neverCalled(); - - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 1 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 1 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 1 }); - - await delay(100); - - function_.calledTimes(3); - - spyOnDispatch.calledTimes(3); - spyOnDispatch.calledWith(Events.ScheduleEvent.BlockJobFinished, expectFinishedEventData()); - }); - - it("should execute every five blocks", async (context) => { - const spyOnDispatch = spy(context.eventDispatcher, "dispatch"); - - const function_ = spyFn(); - - context.job.everyFiveBlocks().execute(() => { - function_.call(); - }); - - function_.neverCalled(); - - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 1 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 5 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 6 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 10 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 11 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 15 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 16 }); - - await delay(100); - - function_.calledTimes(3); - - spyOnDispatch.calledTimes(3); - spyOnDispatch.calledWith(Events.ScheduleEvent.BlockJobFinished, expectFinishedEventData()); - }); - - it("should execute every ten blocks", async (context) => { - const spyOnDispatch = spy(context.eventDispatcher, "dispatch"); - - const function_ = spyFn(); - - context.job.everyTenBlocks().execute(() => { - function_.call(); - }); - - function_.neverCalled(); - - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 1 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 10 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 11 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 20 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 21 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 30 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 31 }); - - await delay(100); - - function_.calledTimes(3); - - spyOnDispatch.calledTimes(3); - spyOnDispatch.calledWith(Events.ScheduleEvent.BlockJobFinished, expectFinishedEventData()); - }); - - it("should execute every fifteen blocks", async (context) => { - const spyOnDispatch = spy(context.eventDispatcher, "dispatch"); - - const function_ = spyFn(); - - context.job.everyFifteenBlocks().execute(() => { - function_.call(); - }); - - function_.neverCalled(); - - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 1 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 15 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 16 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 30 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 31 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 45 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 46 }); - - await delay(100); - - function_.calledTimes(3); - - spyOnDispatch.calledTimes(3); - spyOnDispatch.calledWith(Events.ScheduleEvent.BlockJobFinished, expectFinishedEventData()); - }); - - it("should execute every thirty blocks", async (context) => { - const spyOnDispatch = spy(context.eventDispatcher, "dispatch"); - - const function_ = spyFn(); - - context.job.everyThirtyBlocks().execute(() => { - function_.call(); - }); - - function_.neverCalled(); - - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 1 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 30 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 31 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 60 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 61 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 90 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 91 }); - - await delay(100); - - function_.calledTimes(3); - - spyOnDispatch.calledTimes(3); - spyOnDispatch.calledWith(Events.ScheduleEvent.BlockJobFinished, expectFinishedEventData()); - }); - - it("should execute every round", async (context) => { - const spyOnDispatch = spy(context.eventDispatcher, "dispatch"); - - const function_ = spyFn(); - - context.job.everyRound().execute(() => { - function_.call(); - }); - - function_.neverCalled(); - - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 1 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 51 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 53 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 102 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 106 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 153 }); - context.eventDispatcher.dispatchSync(Events.BlockEvent.Received, { number: 159 }); - - await delay(100); + await context.eventDispatcher.dispatch(Events.BlockEvent.Received, { number: 1 }); + await context.eventDispatcher.dispatch(Events.BlockEvent.Received, { number: 3 }); + await context.eventDispatcher.dispatch(Events.BlockEvent.Received, { number: 4 }); + await context.eventDispatcher.dispatch(Events.BlockEvent.Received, { number: 6 }); + await context.eventDispatcher.dispatch(Events.BlockEvent.Received, { number: 7 }); + await context.eventDispatcher.dispatch(Events.BlockEvent.Received, { number: 9 }); + await context.eventDispatcher.dispatch(Events.BlockEvent.Received, { number: 10 }); function_.calledTimes(3); - spyOnDispatch.calledTimes(3); + spyOnDispatch.calledTimes(10); // 7 + 3 calls for BlockJobFinished spyOnDispatch.calledWith(Events.ScheduleEvent.BlockJobFinished, expectFinishedEventData()); }); }); diff --git a/packages/kernel/source/services/schedule/block-job.ts b/packages/kernel/source/services/schedule/block-job.ts index e30247c0a2..d6ee3e8a3d 100644 --- a/packages/kernel/source/services/schedule/block-job.ts +++ b/packages/kernel/source/services/schedule/block-job.ts @@ -9,10 +9,7 @@ import { ExecuteCallbackWhenReady } from "./listeners.js"; @injectable() export class BlockJob implements Job { @inject(Identifiers.Services.EventDispatcher.Service) - private readonly events!: Contracts.Kernel.EventDispatcher; - - @inject(Identifiers.Cryptography.Configuration) - private readonly configuration!: Contracts.Crypto.Configuration; + private readonly eventDispatcher!: Contracts.Kernel.EventDispatcher; protected blockCount = 1; @@ -22,13 +19,16 @@ export class BlockJob implements Job { callback(); - await this.events.dispatch(Events.ScheduleEvent.BlockJobFinished, { + await this.eventDispatcher.dispatch(Events.ScheduleEvent.BlockJobFinished, { blockCount: this.blockCount, executionTime: performance.now() - start, }); }; - this.events.listen(Events.BlockEvent.Received, new ExecuteCallbackWhenReady(onCallback, this.blockCount)); + this.eventDispatcher.listen( + Events.BlockEvent.Received, + new ExecuteCallbackWhenReady(onCallback, this.blockCount), + ); } public cron(blockCount: number): this { @@ -36,29 +36,4 @@ export class BlockJob implements Job { return this; } - - public everyBlock(): this { - return this.cron(1); - } - - public everyFiveBlocks(): this { - return this.cron(5); - } - - public everyTenBlocks(): this { - return this.cron(10); - } - - public everyFifteenBlocks(): this { - return this.cron(15); - } - - public everyThirtyBlocks(): this { - return this.cron(30); - } - - public everyRound(): this { - // TODO: rebuild on milestone change - return this.cron(this.configuration.getMilestone(1).roundValidators); - } } diff --git a/packages/p2p/source/downloader/message-downloader.ts b/packages/p2p/source/downloader/message-downloader.ts index e82bfb949b..bf3f52b703 100644 --- a/packages/p2p/source/downloader/message-downloader.ts +++ b/packages/p2p/source/downloader/message-downloader.ts @@ -67,7 +67,7 @@ export class MessageDownloader implements Contracts.P2P.Downloader { @postConstruct() public initialize(): void { this.events.listen(Events.BlockEvent.Applied, { - handle: () => { + handle: async (): Promise => { this.#downloadsByBlockNumber.delete(this.stateStore.getBlockNumber()); this.#fullDownloadsByBlockNumber.delete(this.stateStore.getBlockNumber()); }, diff --git a/packages/p2p/source/peer-processor.ts b/packages/p2p/source/peer-processor.ts index ff55724d85..5027afe6e5 100644 --- a/packages/p2p/source/peer-processor.ts +++ b/packages/p2p/source/peer-processor.ts @@ -51,7 +51,7 @@ export class PeerProcessor implements Contracts.P2P.PeerProcessor { @postConstruct() public initialize(): void { this.events.listen(Events.CryptoEvent.MilestoneChanged, { - handle: () => this.#disconnectInvalidPeers(), + handle: async (): Promise => this.#disconnectInvalidPeers(), }); this.transactionPoolWorker.registerEventHandler("peer.removed", (ip: string) => { diff --git a/packages/transaction-pool-worker/source/worker.ts b/packages/transaction-pool-worker/source/worker.ts index c63bc98e3c..bca5bf10b7 100644 --- a/packages/transaction-pool-worker/source/worker.ts +++ b/packages/transaction-pool-worker/source/worker.ts @@ -27,8 +27,8 @@ export class Worker implements Contracts.TransactionPool.Worker { this.eventDispatcher.listen(Events.WebhookEvent.Removed, this); } - public handle(payload: { name: string; data: unknown }): void { - void this.reloadWebhooks(); + public async handle(payload: { name: string; data: unknown }): Promise { + await this.reloadWebhooks(); } public registerEventHandler(event: string, callback: Contracts.Kernel.IPC.EventCallback): void { diff --git a/tests/functional/consensus/source/utilities.ts b/tests/functional/consensus/source/utilities.ts index 5709519dc1..456d4ea6d7 100644 --- a/tests/functional/consensus/source/utilities.ts +++ b/tests/functional/consensus/source/utilities.ts @@ -132,7 +132,7 @@ export const snoozeForBlock = async (app: Contracts.Kernel.Application | Contrac ); const listener = { - handle: ({ data }: { data: Contracts.Crypto.BlockData }) => { + handle: async ({ data }: { data: Contracts.Crypto.BlockData }): Promise => { if (!blockNumber || data.number >= blockNumber) { eventDispatcher.forget(event, listener); resolve(); @@ -159,7 +159,7 @@ export const snoozeForRound = async (app: Contracts.Kernel.Application | Contrac ); const listener = { - handle: ({ data: state }: { data: Contracts.Consensus.State }) => { + handle: async ({ data: state }: { data: Contracts.Consensus.State }): Promise => { if (!round || state.round >= round) { eventDispatcher.forget(event, listener); resolve(); @@ -195,7 +195,7 @@ export async function snoozeForInvalidBlock( ); const listener = { - handle: ({ data: { block, error } }: { data: InvalidBlock }) => { + handle: async ({ data: { block, error } }: { data: InvalidBlock }): Promise => { if (!blockNumber || block.number >= blockNumber) { eventDispatcher.forget(event, listener); resolve({ block, error }); diff --git a/tests/functional/resync/source/pool-worker.ts b/tests/functional/resync/source/pool-worker.ts index 03e3766230..2a084e46a5 100644 --- a/tests/functional/resync/source/pool-worker.ts +++ b/tests/functional/resync/source/pool-worker.ts @@ -13,7 +13,7 @@ export class PoolWorker implements Contracts.TransactionPool.Worker { public async boot(flags: Contracts.TransactionPool.WorkerFlags): Promise { } - public handle(): void { } + public async handle(): Promise { } public async start(): Promise { } diff --git a/tests/functional/transaction-pool-api/source/pool-worker.ts b/tests/functional/transaction-pool-api/source/pool-worker.ts index 0ea6397fb1..143910ebaf 100644 --- a/tests/functional/transaction-pool-api/source/pool-worker.ts +++ b/tests/functional/transaction-pool-api/source/pool-worker.ts @@ -1,6 +1,6 @@ +import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; import type { Contracts } from "@mainsail/contracts"; -import { Identifiers } from "@mainsail/constants"; import { GetTransactionsHandler } from "@mainsail/transaction-pool-worker/distribution/handlers/index.js"; @injectable() @@ -13,7 +13,7 @@ export class PoolWorker implements Contracts.TransactionPool.Worker { public async boot(flags: Contracts.TransactionPool.WorkerFlags): Promise {} - public handle(): void {} + public async handle(): Promise {} public async start(): Promise {} diff --git a/tests/functional/transaction-pool-api/source/snapshot.ts b/tests/functional/transaction-pool-api/source/snapshot.ts index 7316e4a044..8588e4f5f5 100644 --- a/tests/functional/transaction-pool-api/source/snapshot.ts +++ b/tests/functional/transaction-pool-api/source/snapshot.ts @@ -59,11 +59,11 @@ export class Snapshot { >(Identifiers.Services.EventDispatcher.Service); const listener = { - handle: ({ + handle: async ({ data, }: { data: { receipt: Contracts.Evm.TransactionReceipt; sender: string; transactionId: string }; - }) => { + }): Promise => { const { sender, receipt, transactionId } = data; console.log("got receipt", sender, transactionId, receipt);