Skip to content
Snippets Groups Projects
Verified Commit d881a5ed authored by Mateusz Tyszczak's avatar Mateusz Tyszczak :scroll:
Browse files

fixup! fixup! WIP: Further work on provide past operations

parent f1710658
No related branches found
No related tags found
No related merge requests found
Pipeline #119504 failed
...@@ -329,7 +329,7 @@ test.describe("WorkerBee Bot events test", () => { ...@@ -329,7 +329,7 @@ test.describe("WorkerBee Bot events test", () => {
expect(result).toBeLessThanOrEqual(3); expect(result).toBeLessThanOrEqual(3);
}); });
test("Should be able to parse blocks in the past", async({ workerbeeTest }) => { test("Should be able to parse blocks from the past", async({ workerbeeTest }) => {
const result = await workerbeeTest(async({ WorkerBee }) => { const result = await workerbeeTest(async({ WorkerBee }) => {
const bot = new WorkerBee(); const bot = new WorkerBee();
await bot.start(); await bot.start();
...@@ -341,13 +341,38 @@ test.describe("WorkerBee Bot events test", () => { ...@@ -341,13 +341,38 @@ test.describe("WorkerBee Bot events test", () => {
console.log(`Got block #${data.block.number}`); console.log(`Got block #${data.block.number}`);
++calls; ++calls;
},
error(err) {
console.error(err);
},
complete: resolve
});
})
bot.stop();
bot.delete();
return calls;
});
if (calls === 4) expect(result).toBe(4);
resolve(); });
test("Should be able to parse large amount of blocks from the past", async({ workerbeeTest }) => {
const result = await workerbeeTest(async({ WorkerBee }) => {
const bot = new WorkerBee();
await bot.start();
let calls = 0;
await new Promise<void>(resolve => {
bot.providePastOperations(500017, 501020).onBlock().subscribe({
next() {
++calls;
}, },
error(err) { error(err) {
console.error(err); console.error(err);
} },
complete: resolve
}); });
}) })
...@@ -357,7 +382,7 @@ test.describe("WorkerBee Bot events test", () => { ...@@ -357,7 +382,7 @@ test.describe("WorkerBee Bot events test", () => {
return calls; return calls;
}); });
expect(result).toBeLessThanOrEqual(4); expect(result).toBe(1004);
}); });
test.afterAll(async() => { test.afterAll(async() => {
......
...@@ -3,7 +3,7 @@ import type { ApiTransaction, IHiveChainInterface, ITransaction, transaction} fr ...@@ -3,7 +3,7 @@ import type { ApiTransaction, IHiveChainInterface, ITransaction, transaction} fr
import type { IStartConfiguration } from "./bot"; import type { IStartConfiguration } from "./bot";
import { IBlockData } from "./chain-observers/classifiers/block-classifier"; import { IBlockData } from "./chain-observers/classifiers/block-classifier";
import { IBlockHeaderData } from "./chain-observers/classifiers/block-header-classifier"; import { IBlockHeaderData } from "./chain-observers/classifiers/block-header-classifier";
import { PastQueen } from "./past-queen"; import { TPastQueen } from "./past-queen";
import type { QueenBee } from "./queen"; import type { QueenBee } from "./queen";
import type { Subscribable } from "./types/subscribable"; import type { Subscribable } from "./types/subscribable";
...@@ -55,8 +55,10 @@ export interface IWorkerBee { ...@@ -55,8 +55,10 @@ export interface IWorkerBee {
/** /**
* Allows you to iterate over blocks in the past from a given range * Allows you to iterate over blocks in the past from a given range
*
* @throws if called before {@link start}
*/ */
providePastOperations(fromBlock: number, toBlock: number): PastQueen; providePastOperations(fromBlock: number, toBlock: number): TPastQueen;
get observe(): QueenBee; get observe(): QueenBee;
......
...@@ -3,6 +3,14 @@ import { HistoryDataFactory } from "./chain-observers/factories/historydata/fact ...@@ -3,6 +3,14 @@ import { HistoryDataFactory } from "./chain-observers/factories/historydata/fact
import { ObserverMediator } from "./chain-observers/observer-mediator"; import { ObserverMediator } from "./chain-observers/observer-mediator";
import { QueenBee } from "./queen"; import { QueenBee } from "./queen";
export type TPastQueen<TPreviousSubscriberData extends object = {}> = Omit<
PastQueen<TPreviousSubscriberData>,
"onAccountFullManabar" | "onAccountBalanceChange" | "onAccountMetadataChange" |
"onFeedPriceChange" | "onFeedPriceNoChange" | "provideFeedPriceData" |
"onAlarm" | "onWitnessMissedBlocks" | "provideAccounts" |
"provideWitnesses" | "provideRcAccounts"
>;
export class PastQueen<TPreviousSubscriberData extends object = {}> extends QueenBee<TPreviousSubscriberData> { export class PastQueen<TPreviousSubscriberData extends object = {}> extends QueenBee<TPreviousSubscriberData> {
public constructor( public constructor(
worker: WorkerBee, worker: WorkerBee,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment