@eclesia/indexer-engine 2.4.2 → 2.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/indexer/index.js
CHANGED
|
@@ -91,10 +91,10 @@ class EcleciaIndexer extends emitter_1.EclesiaEmitter {
|
|
|
91
91
|
...config
|
|
92
92
|
};
|
|
93
93
|
if (this.config.minimal) {
|
|
94
|
-
this.blockQueue = new promise_queue_1.
|
|
94
|
+
this.blockQueue = new promise_queue_1.CircularBuffer(this.config.batchSize);
|
|
95
95
|
}
|
|
96
96
|
else {
|
|
97
|
-
this.blockQueue = new promise_queue_1.
|
|
97
|
+
this.blockQueue = new promise_queue_1.CircularBuffer(this.config.batchSize);
|
|
98
98
|
}
|
|
99
99
|
const { printf } = winston_1.default.format;
|
|
100
100
|
const eclesiaFormat = printf(({ level, message, timestamp }) => {
|
|
@@ -14,4 +14,22 @@ export declare class PromiseQueue<T> {
|
|
|
14
14
|
isEmpty(): boolean;
|
|
15
15
|
size(): number;
|
|
16
16
|
}
|
|
17
|
+
export declare class CircularBuffer<T> {
|
|
18
|
+
private items;
|
|
19
|
+
private count;
|
|
20
|
+
private next;
|
|
21
|
+
private batcher;
|
|
22
|
+
synced: boolean;
|
|
23
|
+
private batchSize;
|
|
24
|
+
private continuePromise;
|
|
25
|
+
private nextAvail;
|
|
26
|
+
constructor(batchSize: number);
|
|
27
|
+
enqueue(item: T | PromiseLike<T>): void;
|
|
28
|
+
dequeue(): T | PromiseLike<T>;
|
|
29
|
+
clear(): void;
|
|
30
|
+
continue(): Promise<boolean>;
|
|
31
|
+
setSynced(): void;
|
|
32
|
+
isEmpty(): boolean;
|
|
33
|
+
size(): number;
|
|
34
|
+
}
|
|
17
35
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/promise-queue/index.ts"],"names":[],"mappings":"AAOA,qBAAa,YAAY,CAAC,CAAC;IACzB,OAAO,CAAC,KAAK,CAAoB;IAEjC,OAAO,CAAC,QAAQ,CAAqC;IAErD,OAAO,CAAC,OAAO,CAA0B;IAElC,MAAM,UAAS;IAEtB,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,eAAe,CAAmB;gBAE9B,SAAS,EAAE,MAAM;IAY7B,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAiBhC,KAAK;IAWL,OAAO,IAMU,OAAO,CAAC,CAAC,CAAC;IAG3B,QAAQ;IAIR,SAAS;IAIT,OAAO;IAQP,IAAI;CAGL"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/promise-queue/index.ts"],"names":[],"mappings":"AAOA,qBAAa,YAAY,CAAC,CAAC;IACzB,OAAO,CAAC,KAAK,CAAoB;IAEjC,OAAO,CAAC,QAAQ,CAAqC;IAErD,OAAO,CAAC,OAAO,CAA0B;IAElC,MAAM,UAAS;IAEtB,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,eAAe,CAAmB;gBAE9B,SAAS,EAAE,MAAM;IAY7B,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAiBhC,KAAK;IAWL,OAAO,IAMU,OAAO,CAAC,CAAC,CAAC;IAG3B,QAAQ;IAIR,SAAS;IAIT,OAAO;IAQP,IAAI;CAGL;AAED,qBAAa,cAAc,CAAC,CAAC;IAC3B,OAAO,CAAC,KAAK,CAA4B;IAEzC,OAAO,CAAC,KAAK,CAAa;IAE1B,OAAO,CAAC,IAAI,CAAa;IAEzB,OAAO,CAAC,OAAO,CAA0B;IAElC,MAAM,UAAS;IAEtB,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,eAAe,CAAmB;IAE1C,OAAO,CAAC,SAAS,CAAa;gBAElB,SAAS,EAAE,MAAM;IAY7B,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAmBhC,OAAO;IAaP,KAAK;IAWL,QAAQ;IAIR,SAAS;IAIT,OAAO;IAQP,IAAI;CAGL"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
size() is always at minimum 1 item which is the promise that will resolve to the next item whenever it is enqueued
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.PromiseQueue = void 0;
|
|
9
|
+
exports.CircularBuffer = exports.PromiseQueue = void 0;
|
|
10
10
|
class PromiseQueue {
|
|
11
11
|
constructor(batchSize) {
|
|
12
12
|
this.synced = false;
|
|
@@ -73,3 +73,78 @@ class PromiseQueue {
|
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
exports.PromiseQueue = PromiseQueue;
|
|
76
|
+
class CircularBuffer {
|
|
77
|
+
constructor(batchSize) {
|
|
78
|
+
this.count = 0;
|
|
79
|
+
this.next = 0;
|
|
80
|
+
this.synced = false;
|
|
81
|
+
this.nextAvail = 0;
|
|
82
|
+
if (batchSize <= 1) {
|
|
83
|
+
throw new Error("Batch size must be greater than 1");
|
|
84
|
+
}
|
|
85
|
+
this.items = new Array(batchSize);
|
|
86
|
+
this.batchSize = batchSize;
|
|
87
|
+
this.continuePromise = new Promise((resolve, _reject) => {
|
|
88
|
+
this.batcher = resolve;
|
|
89
|
+
});
|
|
90
|
+
this.batcher(true);
|
|
91
|
+
}
|
|
92
|
+
enqueue(item) {
|
|
93
|
+
try {
|
|
94
|
+
this.items[this.nextAvail] = item;
|
|
95
|
+
this.count++;
|
|
96
|
+
this.nextAvail++;
|
|
97
|
+
if (this.nextAvail >= this.batchSize) {
|
|
98
|
+
this.nextAvail = 0;
|
|
99
|
+
}
|
|
100
|
+
if (this.nextAvail == this.next) {
|
|
101
|
+
this.continuePromise = new Promise((resolve, _reject) => {
|
|
102
|
+
this.batcher = resolve;
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
catch (e) {
|
|
107
|
+
console.error("Enqueing rejected data: " + e);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
dequeue() {
|
|
111
|
+
const item = this.items[this.next];
|
|
112
|
+
this.next++;
|
|
113
|
+
this.count--;
|
|
114
|
+
if (this.next >= this.batchSize) {
|
|
115
|
+
this.next = 0;
|
|
116
|
+
}
|
|
117
|
+
if (this.count < this.batchSize) {
|
|
118
|
+
this.batcher(true);
|
|
119
|
+
}
|
|
120
|
+
return item;
|
|
121
|
+
}
|
|
122
|
+
clear() {
|
|
123
|
+
this.next = 0;
|
|
124
|
+
this.nextAvail = 0;
|
|
125
|
+
this.count = 0;
|
|
126
|
+
this.continuePromise = new Promise((resolve, _reject) => {
|
|
127
|
+
this.batcher = resolve;
|
|
128
|
+
});
|
|
129
|
+
this.batcher(true);
|
|
130
|
+
this.items = new Array(this.batchSize);
|
|
131
|
+
}
|
|
132
|
+
continue() {
|
|
133
|
+
return this.continuePromise;
|
|
134
|
+
}
|
|
135
|
+
setSynced() {
|
|
136
|
+
this.synced = true;
|
|
137
|
+
}
|
|
138
|
+
isEmpty() {
|
|
139
|
+
if (this.count == 0) {
|
|
140
|
+
return true;
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
size() {
|
|
147
|
+
return this.count;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
exports.CircularBuffer = CircularBuffer;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { Event } from "@cosmjs/tendermint-rpc/build/comet38/responses";
|
|
|
3
3
|
import { Validator } from "cosmjs-types/cosmos/staking/v1beta1/staking";
|
|
4
4
|
import { TxBody } from "cosmjs-types/cosmos/tx/v1beta1/tx";
|
|
5
5
|
import { EcleciaIndexer } from "../indexer";
|
|
6
|
-
import {
|
|
6
|
+
import { CircularBuffer } from "../promise-queue";
|
|
7
7
|
export type EcleciaIndexerConfig = {
|
|
8
8
|
startHeight?: number;
|
|
9
9
|
endHeight?: number;
|
|
@@ -21,8 +21,8 @@ export type EcleciaIndexerConfig = {
|
|
|
21
21
|
beginTransaction: () => Promise<void>;
|
|
22
22
|
endTransaction: (status: boolean) => Promise<void>;
|
|
23
23
|
};
|
|
24
|
-
export type FullBlockQueue =
|
|
25
|
-
export type MinimalBlockQueue =
|
|
24
|
+
export type FullBlockQueue = CircularBuffer<[BlockResponse, BlockResultsResponse, Uint8Array]>;
|
|
25
|
+
export type MinimalBlockQueue = CircularBuffer<[BlockResponse, BlockResultsResponse]>;
|
|
26
26
|
export type BlockQueue = FullBlockQueue | MinimalBlockQueue;
|
|
27
27
|
export type WithHeightAndUUID<T> = {
|
|
28
28
|
[K in keyof T]: T[K] & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,gDAAgD,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|