@typeberry/lib 0.8.4-faebc7a → 0.9.0-c9f9e4d
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/package.json +1 -1
- package/packages/configs/index.d.ts +30 -1
- package/packages/configs/index.d.ts.map +1 -1
- package/packages/configs/index.js +4 -2
- package/packages/configs/typeberry-dev-full.json +29 -0
- package/packages/core/bytes/bytes.d.ts +1 -0
- package/packages/core/bytes/bytes.d.ts.map +1 -1
- package/packages/core/bytes/bytes.js +8 -0
- package/packages/core/utils/debug.d.ts +4 -2
- package/packages/core/utils/debug.d.ts.map +1 -1
- package/packages/core/utils/debug.js +18 -13
- package/packages/core/utils/debug.test.js +12 -6
- package/packages/jam/config-node/node-config.d.ts +2 -1
- package/packages/jam/config-node/node-config.d.ts.map +1 -1
- package/packages/jam/config-node/node-config.js +8 -3
- package/packages/jam/config-node/node-config.test.js +3 -3
- package/packages/jam/jamnp-s/tasks/ticket-distribution.js +1 -1
- package/packages/jam/safrole/bandersnatch-vrf.d.ts +22 -2
- package/packages/jam/safrole/bandersnatch-vrf.d.ts.map +1 -1
- package/packages/jam/safrole/bandersnatch-vrf.js +54 -20
- package/packages/jam/safrole/bandersnatch-vrf.test.js +3 -2
- package/packages/jam/safrole/bandersnatch-wasm.d.ts +10 -0
- package/packages/jam/safrole/bandersnatch-wasm.d.ts.map +1 -1
- package/packages/jam/safrole/bandersnatch-wasm.js +12 -0
- package/packages/jam/ticket-pool/ticket-validator.d.ts +5 -4
- package/packages/jam/ticket-pool/ticket-validator.d.ts.map +1 -1
- package/packages/jam/ticket-pool/ticket-validator.js +8 -3
- package/packages/jam/ticket-pool/ticket-validator.test.js +5 -4
- package/packages/jam/ticket-pool/verified-ticket-pool.d.ts +2 -0
- package/packages/jam/ticket-pool/verified-ticket-pool.d.ts.map +1 -1
- package/packages/jam/ticket-pool/verified-ticket-pool.js +4 -0
- package/packages/jam/ticket-pool/verified-ticket-pool.test.js +5 -5
- package/packages/workers/block-authorship/{generator.d.ts → block-generator.d.ts} +5 -5
- package/packages/workers/block-authorship/block-generator.d.ts.map +1 -0
- package/packages/workers/block-authorship/{generator.js → block-generator.js} +3 -3
- package/packages/workers/block-authorship/block-generator.test.d.ts +2 -0
- package/packages/workers/block-authorship/block-generator.test.d.ts.map +1 -0
- package/packages/workers/block-authorship/{generator.test.js → block-generator.test.js} +8 -8
- package/packages/workers/block-authorship/epoch-authoring-slots.d.ts +35 -0
- package/packages/workers/block-authorship/epoch-authoring-slots.d.ts.map +1 -0
- package/packages/workers/block-authorship/epoch-authoring-slots.js +86 -0
- package/packages/workers/block-authorship/epoch-tracker.d.ts +29 -0
- package/packages/workers/block-authorship/epoch-tracker.d.ts.map +1 -0
- package/packages/workers/block-authorship/epoch-tracker.js +80 -0
- package/packages/workers/block-authorship/index.d.ts.map +1 -1
- package/packages/workers/block-authorship/index.js +1 -1
- package/packages/workers/block-authorship/main.d.ts +3 -0
- package/packages/workers/block-authorship/main.d.ts.map +1 -1
- package/packages/workers/block-authorship/main.js +193 -261
- package/packages/workers/block-authorship/ticket-generator/bootstrap-main.d.ts +2 -0
- package/packages/workers/block-authorship/ticket-generator/bootstrap-main.d.ts.map +1 -0
- package/packages/workers/block-authorship/ticket-generator/bootstrap-main.js +23 -0
- package/packages/workers/block-authorship/ticket-generator/index.d.ts +16 -0
- package/packages/workers/block-authorship/ticket-generator/index.d.ts.map +1 -0
- package/packages/workers/block-authorship/ticket-generator/index.js +62 -0
- package/packages/workers/block-authorship/ticket-generator/protocol.d.ts +50 -0
- package/packages/workers/block-authorship/ticket-generator/protocol.d.ts.map +1 -0
- package/packages/workers/block-authorship/ticket-generator/protocol.js +54 -0
- package/packages/workers/block-authorship/{ticket-generator.d.ts → ticket-generator/ticket-generator.d.ts} +4 -0
- package/packages/workers/block-authorship/ticket-generator/ticket-generator.d.ts.map +1 -0
- package/packages/workers/block-authorship/{ticket-generator.js → ticket-generator/ticket-generator.js} +19 -9
- package/packages/workers/block-authorship/ticket-generator/ticket-generator.test.d.ts.map +1 -0
- package/packages/workers/block-authorship/{ticket-generator.test.js → ticket-generator/ticket-generator.test.js} +13 -9
- package/packages/workers/block-authorship/ticket-generator/worker-pool.d.ts +36 -0
- package/packages/workers/block-authorship/ticket-generator/worker-pool.d.ts.map +1 -0
- package/packages/workers/block-authorship/ticket-generator/worker-pool.js +111 -0
- package/packages/workers/block-authorship/ticket-validator.d.ts +7 -8
- package/packages/workers/block-authorship/ticket-validator.d.ts.map +1 -1
- package/packages/workers/block-authorship/ticket-validator.js +26 -23
- package/packages/workers/comms-authorship-network/protocol.d.ts +4 -4
- package/packages/workers/comms-authorship-network/protocol.d.ts.map +1 -1
- package/packages/workers/comms-authorship-network/protocol.js +4 -5
- package/packages/workers/comms-authorship-network/tickets-message.d.ts +0 -14
- package/packages/workers/comms-authorship-network/tickets-message.d.ts.map +1 -1
- package/packages/workers/comms-authorship-network/tickets-message.js +0 -17
- package/packages/workers/importer/importer.d.ts +2 -2
- package/packages/workers/importer/importer.d.ts.map +1 -1
- package/packages/workers/importer/importer.js +5 -5
- package/packages/workers/importer/stats.d.ts +1 -3
- package/packages/workers/importer/stats.d.ts.map +1 -1
- package/packages/workers/importer/stats.js +12 -12
- package/packages/workers/jam-network/main.d.ts.map +1 -1
- package/packages/workers/jam-network/main.js +8 -3
- package/packages/workers/block-authorship/generator.d.ts.map +0 -1
- package/packages/workers/block-authorship/generator.test.d.ts +0 -2
- package/packages/workers/block-authorship/generator.test.d.ts.map +0 -1
- package/packages/workers/block-authorship/ticket-generator.d.ts.map +0 -1
- package/packages/workers/block-authorship/ticket-generator.test.d.ts.map +0 -1
- /package/packages/configs/{typeberry-dev.json → typeberry-dev-tiny.json} +0 -0
- /package/packages/workers/block-authorship/{ticket-generator.test.d.ts → ticket-generator/ticket-generator.test.d.ts} +0 -0
|
@@ -33,7 +33,7 @@ export class Importer {
|
|
|
33
33
|
options;
|
|
34
34
|
events;
|
|
35
35
|
/**
|
|
36
|
-
* Build an
|
|
36
|
+
* Build an `Importer` connected to the best state loaded from `states`.
|
|
37
37
|
*
|
|
38
38
|
* Throws if the best state cannot be loaded — callers are expected to treat that
|
|
39
39
|
* as a programmer error (the DB should be initialized before reaching here).
|
|
@@ -52,7 +52,7 @@ export class Importer {
|
|
|
52
52
|
this.blocks = args.blocks;
|
|
53
53
|
this.states = args.states;
|
|
54
54
|
this.options = args.options ?? {};
|
|
55
|
-
this.events = args.events ?? ImporterStats.new(
|
|
55
|
+
this.events = args.events ?? ImporterStats.new(() => this.states.diskSizeInBytes?.() ?? null);
|
|
56
56
|
this.metrics = metrics.createMetrics();
|
|
57
57
|
this.verifier = BlockVerifier.new(args.hasher, args.blocks);
|
|
58
58
|
this.stf = OnChain.assemble({
|
|
@@ -98,12 +98,12 @@ export class Importer {
|
|
|
98
98
|
// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
|
|
99
99
|
if (maybeBestHeader?.isOk) {
|
|
100
100
|
const bestHeader = maybeBestHeader.ok;
|
|
101
|
-
this.logger.info `🧊 Best
|
|
101
|
+
this.logger.info `🧊 Best: #${timeSlot} (${bestHeader.hash.toStringTruncated()})`;
|
|
102
102
|
this.metrics.recordBlockImportComplete(duration, true);
|
|
103
103
|
}
|
|
104
104
|
else {
|
|
105
105
|
this.logger
|
|
106
|
-
.log `❌ Rejected
|
|
106
|
+
.log `❌ Rejected #${timeSlot}: ${maybeBestHeader !== null ? resultToString(maybeBestHeader) : "exception"}`;
|
|
107
107
|
this.metrics.recordBlockImportComplete(duration, false);
|
|
108
108
|
}
|
|
109
109
|
}
|
|
@@ -176,7 +176,7 @@ export class Importer {
|
|
|
176
176
|
if (finality !== null) {
|
|
177
177
|
const pruneBlocks = this.options.pruneBlocks ?? false;
|
|
178
178
|
this.logger
|
|
179
|
-
.info `🦭 Finalized
|
|
179
|
+
.info `🦭 Finalized: ${finality.finalizedHash.toStringTruncated()} (${finality.prunableStateHashes.length} to prune, blocks: ${pruneBlocks})`;
|
|
180
180
|
for (const hash of finality.prunableStateHashes) {
|
|
181
181
|
this.states.markUnused(hash);
|
|
182
182
|
if (pruneBlocks) {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { HeaderHash, TimeSlot } from "#@typeberry/block";
|
|
2
2
|
import type { LeafDb } from "#@typeberry/database";
|
|
3
|
-
import type { Logger } from "#@typeberry/logger";
|
|
4
3
|
import type { SerializedState } from "#@typeberry/state-merkleization";
|
|
5
4
|
/** Reports the current on-disk database size in bytes, or `null` when unknown. */
|
|
6
5
|
export type DbSizeProvider = () => number | null;
|
|
@@ -17,7 +16,6 @@ export interface ImporterEventsListener {
|
|
|
17
16
|
onStart(currentBestHeaderHash: HeaderHash, currentBestState: SerializedState<LeafDb>): void;
|
|
18
17
|
}
|
|
19
18
|
export declare class ImporterStats implements ImporterEventsListener {
|
|
20
|
-
private readonly logger;
|
|
21
19
|
/** Reports the current on-disk database size in bytes, or `null` if unknown. */
|
|
22
20
|
private readonly dbSizeInBytes;
|
|
23
21
|
/** How often we are going to print the stats (i.e. every `maxBlocks` blocks) */
|
|
@@ -30,7 +28,7 @@ export declare class ImporterStats implements ImporterEventsListener {
|
|
|
30
28
|
private totalTime;
|
|
31
29
|
private totalBlocksPrev;
|
|
32
30
|
private totalBlocks;
|
|
33
|
-
static new(
|
|
31
|
+
static new(dbSizeInBytes?: DbSizeProvider): ImporterStats;
|
|
34
32
|
private constructor();
|
|
35
33
|
onStart(currentBestHeaderHash: HeaderHash, currentBestState: SerializedState<LeafDb>): void;
|
|
36
34
|
onBlockImportingStarted(timeSlot: TimeSlot): (isOk: boolean) => number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../../../packages/workers/importer/stats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../../../packages/workers/importer/stats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAKtE,kFAAkF;AAClF,MAAM,MAAM,cAAc,GAAG,MAAM,MAAM,GAAG,IAAI,CAAC;AAWjD,6CAA6C;AAC7C,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,CAAC;IAEvE,qCAAqC;IACrC,OAAO,CAAC,qBAAqB,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CAC7F;AAED,qBAAa,aAAc,YAAW,sBAAsB;IAaxD,gFAAgF;IAChF,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,gFAAgF;IAChF,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,uFAAuF;IACvF,OAAO,CAAC,QAAQ,CAAC,SAAS;IAjB5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiD;IACxE,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,WAAW,CAAK;IAExB,MAAM,CAAC,GAAG,CAAC,aAAa,GAAE,cAA2B;IAIrD,OAAO;IASP,OAAO,CAAC,qBAAqB,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,CAAC,MAAM,CAAC;IAIpF,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,IAGhC,MAAM,OAAO;CAiCxB"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { Level, Logger } from "#@typeberry/logger";
|
|
1
2
|
import { memoryTracker, now } from "#@typeberry/utils";
|
|
3
|
+
const logger = Logger.new(import.meta.filename, "stats");
|
|
2
4
|
/** Format a database size for the stats line, e.g. ` db=12.34GB`. Empty when unknown. */
|
|
3
5
|
function formatDbSize(bytes) {
|
|
4
6
|
if (bytes === null) {
|
|
@@ -8,50 +10,48 @@ function formatDbSize(bytes) {
|
|
|
8
10
|
return mb >= 1024 ? ` db=${(mb / 1024).toFixed(2)}GB` : ` db=${mb.toFixed(1)}MB`;
|
|
9
11
|
}
|
|
10
12
|
export class ImporterStats {
|
|
11
|
-
logger;
|
|
12
13
|
dbSizeInBytes;
|
|
13
14
|
maxBlocks;
|
|
14
15
|
maxTimeMs;
|
|
15
|
-
memory = memoryTracker();
|
|
16
|
+
memory = memoryTracker(logger.getLevel() < Level.INFO);
|
|
16
17
|
showDiskStats = true;
|
|
17
18
|
totalTimePrev = 0;
|
|
18
19
|
totalTime = 0;
|
|
19
20
|
totalBlocksPrev = 0;
|
|
20
21
|
totalBlocks = 0;
|
|
21
|
-
static new(
|
|
22
|
-
return new ImporterStats(
|
|
22
|
+
static new(dbSizeInBytes = () => null) {
|
|
23
|
+
return new ImporterStats(dbSizeInBytes);
|
|
23
24
|
}
|
|
24
|
-
constructor(
|
|
25
|
+
constructor(
|
|
25
26
|
/** Reports the current on-disk database size in bytes, or `null` if unknown. */
|
|
26
27
|
dbSizeInBytes = () => null,
|
|
27
28
|
/** How often we are going to print the stats (i.e. every `maxBlocks` blocks) */
|
|
28
29
|
maxBlocks = 100,
|
|
29
30
|
/** Alternatively print stats when we reach `${maxTimeMs}` of total block execution. */
|
|
30
31
|
maxTimeMs = 5000) {
|
|
31
|
-
this.logger = logger;
|
|
32
32
|
this.dbSizeInBytes = dbSizeInBytes;
|
|
33
33
|
this.maxBlocks = maxBlocks;
|
|
34
34
|
this.maxTimeMs = maxTimeMs;
|
|
35
35
|
}
|
|
36
36
|
onStart(currentBestHeaderHash, currentBestState) {
|
|
37
|
-
|
|
37
|
+
logger.info `😎 Best time slot: ${currentBestState.timeslot} (header hash: ${currentBestHeaderHash})`;
|
|
38
38
|
}
|
|
39
39
|
onBlockImportingStarted(timeSlot) {
|
|
40
40
|
const start = now();
|
|
41
41
|
return (isOk) => {
|
|
42
42
|
const duration = now() - start;
|
|
43
43
|
const label = isOk ? "import" : "reject";
|
|
44
|
-
|
|
44
|
+
logger.log `⏱️ ${label} #${timeSlot} took ${duration.toFixed(2)}ms`;
|
|
45
45
|
this.totalTime += duration;
|
|
46
46
|
this.totalBlocks += 1;
|
|
47
47
|
if (this.totalBlocks >= this.maxBlocks || this.totalTime >= this.maxTimeMs) {
|
|
48
48
|
// disk data (every second output)
|
|
49
49
|
if (this.showDiskStats) {
|
|
50
|
-
|
|
50
|
+
logger.info `💾 disk at #${timeSlot}: ${formatDbSize(this.dbSizeInBytes())}`;
|
|
51
51
|
}
|
|
52
52
|
this.showDiskStats = !this.showDiskStats;
|
|
53
|
-
// memory
|
|
54
|
-
|
|
53
|
+
// memory (memoryTracker's toString() is stateful — log it once)
|
|
54
|
+
logger.info `📊 mem at #${timeSlot}: ${this.memory}`;
|
|
55
55
|
// compute block statistics (rolling window of last two rounds)
|
|
56
56
|
const importedBlocks = this.totalBlocks + this.totalBlocksPrev;
|
|
57
57
|
const importTime = this.totalTime + this.totalTimePrev;
|
|
@@ -61,7 +61,7 @@ export class ImporterStats {
|
|
|
61
61
|
this.totalTimePrev = this.totalTime;
|
|
62
62
|
this.totalBlocks = 0;
|
|
63
63
|
this.totalTime = 0;
|
|
64
|
-
|
|
64
|
+
logger.info ` ⏱️ speed at #${timeSlot}: ${blocksPerSecond.toFixed(2)}bps`;
|
|
65
65
|
}
|
|
66
66
|
return duration;
|
|
67
67
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../../packages/workers/jam-network/main.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../../packages/workers/jam-network/main.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAQ3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAI1E;;;;;;GAMG;AACH,wBAAsB,IAAI,CACxB,MAAM,EAAE,YAAY,CAAC,gBAAgB,CAAC,EACtC,KAAK,EAAE,kBAAkB,EACzB,eAAe,EAAE,eAAe,iBAgFjC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { Bytes } from "#@typeberry/bytes";
|
|
1
2
|
import { parseBootnode } from "#@typeberry/config-node";
|
|
2
3
|
import { ed25519, initWasm } from "#@typeberry/crypto";
|
|
4
|
+
import { HASH_SIZE } from "#@typeberry/hash";
|
|
3
5
|
import { setup } from "#@typeberry/jamnp-s";
|
|
4
6
|
import { Logger } from "#@typeberry/logger";
|
|
5
7
|
import { ValidationError } from "#@typeberry/ticket-pool";
|
|
@@ -50,12 +52,15 @@ export async function main(config, comms, authorshipComms) {
|
|
|
50
52
|
// for an accept/reject decision. The wire protocol stays a simple bool; the
|
|
51
53
|
// computed id stays inside authorship (it owns the verified pool).
|
|
52
54
|
const ipcValidator = {
|
|
53
|
-
validate: async (epochIndex,
|
|
54
|
-
const ok = await authorshipComms.sendReceivedTickets({ epochIndex,
|
|
55
|
+
validate: async (epochIndex, tickets) => {
|
|
56
|
+
const ok = await authorshipComms.sendReceivedTickets({ epochIndex, tickets });
|
|
55
57
|
if (!ok) {
|
|
56
58
|
return Result.error(ValidationError.InvalidProof, () => "authorship rejected the ticket");
|
|
57
59
|
}
|
|
58
|
-
return Result.ok(
|
|
60
|
+
return Result.ok(tickets.map((ticket) => ({
|
|
61
|
+
ticket,
|
|
62
|
+
id: Bytes.zero(HASH_SIZE).asOpaque(),
|
|
63
|
+
})));
|
|
59
64
|
},
|
|
60
65
|
};
|
|
61
66
|
network.ticketTask.setTicketValidator(ipcValidator);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../../packages/workers/block-authorship/generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,KAAK,WAAW,EAIhB,KAAK,QAAQ,EACb,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,2BAA2B,CAAC;AAEtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAS,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAoC,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAClG,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAIvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAGhF,OAAO,EAAqB,KAAK,MAAM,EAAU,MAAM,kBAAkB,CAAC;AAM1E;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAEvD,oDAAoD;AACpD,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;CAClB,CAAC;AAEF,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2C;IAEnE,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,YAAY,EAAE,gBAAgB,CAAC;IAC/C,SAAgB,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC;IAClD,SAAgB,OAAO,EAAE,OAAO,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAElC,wDAAwD;IACxD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa;IAI9B,OAAO;IAUP,OAAO,CAAC,qBAAqB;IAYvB,aAAa,CACjB,cAAc,EAAE,cAAc,EAC9B,kBAAkB,EAAE,sBAAsB,EAC1C,WAAW,EAAE,cAAc,EAC3B,QAAQ,EAAE,QAAQ,EAClB,cAAc,GAAE;QAAE,MAAM,EAAE,YAAY,CAAC;QAAC,EAAE,EAAE,WAAW,CAAA;KAAE,EAAO,GAC/D,OAAO,CAAC,SAAS,CAAC;IAKrB;;;;;;;;;OASG;YACW,cAAc;IAiB5B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,uBAAuB;IA4BzB,SAAS,CACb,cAAc,EAAE,cAAc,EAC9B,kBAAkB,EAAE,sBAAsB,EAC1C,WAAW,EAAE,cAAc,EAC3B,QAAQ,EAAE,QAAQ,EAClB,cAAc,GAAE;QAAE,MAAM,EAAE,YAAY,CAAC;QAAC,EAAE,EAAE,WAAW,CAAA;KAAE,EAAO;CAqGnE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generator.test.d.ts","sourceRoot":"","sources":["../../../../../packages/workers/block-authorship/generator.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ticket-generator.d.ts","sourceRoot":"","sources":["../../../../../packages/workers/block-authorship/ticket-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI1C,oBAAY,oBAAoB;IAC9B,sBAAsB,2BAA2B;IACjD,kBAAkB,uBAAuB;CAC1C;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,MAAM,EAAE,eAAe,CAAC;CACzB,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,YAAY,EAAE,gBAAgB,EAC9B,QAAQ,EAAE,eAAe,EAAE,EAC3B,aAAa,EAAE,YAAY,EAAE,EAC7B,OAAO,EAAE,WAAW,EACpB,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAkCvD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ticket-generator.test.d.ts","sourceRoot":"","sources":["../../../../../packages/workers/block-authorship/ticket-generator.test.ts"],"names":[],"mappings":""}
|
|
File without changes
|