@mainsail/consensus 0.0.1-evm.41 → 0.0.1-evm.42

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.
Files changed (39) hide show
  1. package/distribution/bootstrapper.d.ts.map +1 -1
  2. package/distribution/bootstrapper.js +8 -12
  3. package/distribution/bootstrapper.js.map +1 -1
  4. package/distribution/consensus.d.ts +1 -2
  5. package/distribution/consensus.d.ts.map +1 -1
  6. package/distribution/consensus.js +5 -10
  7. package/distribution/consensus.js.map +1 -1
  8. package/distribution/index.d.ts +1 -5
  9. package/distribution/index.d.ts.map +1 -1
  10. package/distribution/index.js +1 -42
  11. package/distribution/index.js.map +1 -1
  12. package/distribution/processors/commit-processor.js +1 -1
  13. package/distribution/processors/commit-processor.js.map +1 -1
  14. package/distribution/processors/index.d.ts +1 -2
  15. package/distribution/processors/index.d.ts.map +1 -1
  16. package/distribution/processors/index.js +1 -2
  17. package/distribution/processors/index.js.map +1 -1
  18. package/distribution/processors/{prevote-processor.d.ts → message-processor.d.ts} +3 -3
  19. package/distribution/processors/{prevote-processor.d.ts.map → message-processor.d.ts.map} +1 -1
  20. package/distribution/processors/{precommit-processor.js → message-processor.js} +38 -33
  21. package/distribution/processors/message-processor.js.map +1 -0
  22. package/distribution/processors/proposal-processor.d.ts +1 -0
  23. package/distribution/processors/proposal-processor.d.ts.map +1 -1
  24. package/distribution/processors/proposal-processor.js +7 -2
  25. package/distribution/processors/proposal-processor.js.map +1 -1
  26. package/distribution/round-state.d.ts +10 -6
  27. package/distribution/round-state.d.ts.map +1 -1
  28. package/distribution/round-state.js +45 -1
  29. package/distribution/round-state.js.map +1 -1
  30. package/distribution/service-provider.d.ts +6 -0
  31. package/distribution/service-provider.d.ts.map +1 -0
  32. package/distribution/service-provider.js +42 -0
  33. package/distribution/service-provider.js.map +1 -0
  34. package/package.json +7 -7
  35. package/distribution/processors/precommit-processor.d.ts +0 -13
  36. package/distribution/processors/precommit-processor.d.ts.map +0 -1
  37. package/distribution/processors/precommit-processor.js.map +0 -1
  38. package/distribution/processors/prevote-processor.js +0 -111
  39. package/distribution/processors/prevote-processor.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrapper.d.ts","sourceRoot":"","sources":["../source/bootstrapper.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAS,MAAM,qBAAqB,CAAC;AAE5D,qBACa,YAAa,YAAW,SAAS,CAAC,SAAS,CAAC,YAAY;IAEpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAGlD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4C;IAG3E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAEjD,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC;CA6ClE"}
1
+ {"version":3,"file":"bootstrapper.d.ts","sourceRoot":"","sources":["../source/bootstrapper.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAS,MAAM,qBAAqB,CAAC;AAE5D,qBACa,YAAa,YAAW,SAAS,CAAC,SAAS,CAAC,YAAY;IAEpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAGlD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4C;IAG3E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAEjD,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC;CA2ClE"}
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { Identifiers } from "@mainsail/constants";
10
+ import { Enums, Identifiers } from "@mainsail/constants";
11
11
  import { inject, injectable } from "@mainsail/container";
12
12
  let Bootstrapper = class Bootstrapper {
13
13
  logger;
@@ -20,17 +20,13 @@ let Bootstrapper = class Bootstrapper {
20
20
  const roundState = this.roundStateRepo.getRoundState(proposal.blockHeader.number, proposal.round);
21
21
  roundState.addProposal(proposal);
22
22
  }
23
- const prevotes = await this.storage.getPrevotes();
24
- this.logger.info(`Consensus Bootstrap - Prevotes: ${prevotes.length}`, "consensus");
25
- for (const prevote of prevotes) {
26
- const roundState = this.roundStateRepo.getRoundState(prevote.blockNumber, prevote.round);
27
- roundState.addPrevote(prevote);
28
- }
29
- const precommits = await this.storage.getPrecommits();
30
- this.logger.info(`Consensus Bootstrap - Precommits: ${precommits.length}`, "consensus");
31
- for (const precommit of precommits) {
32
- const roundState = this.roundStateRepo.getRoundState(precommit.blockNumber, precommit.round);
33
- roundState.addPrecommit(precommit);
23
+ const messages = await this.storage.getMessages();
24
+ const prevotes = messages.filter((message) => message.type === Enums.Crypto.MessageType.Prevote);
25
+ const precommits = messages.filter((message) => message.type === Enums.Crypto.MessageType.Precommit);
26
+ this.logger.info(`Consensus Bootstrap - Prevotes: ${prevotes.length}, Precommits: ${precommits.length}`, "consensus");
27
+ for (const message of messages) {
28
+ const roundState = this.roundStateRepo.getRoundState(message.blockNumber, message.round);
29
+ roundState.addMessage(message);
34
30
  }
35
31
  const state = (await this.storage.getState());
36
32
  if (!state) {
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrapper.js","sourceRoot":"","sources":["../source/bootstrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrapper.js","sourceRoot":"","sources":["../source/bootstrapper.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAIlD,IAAM,YAAY,GAAlB,MAAM,YAAY;IAEP,MAAM,CAA2B;IAGjC,cAAc,CAA4C;IAG1D,OAAO,CAAsC;IAEvD,KAAK,CAAC,GAAG;QACf,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QAEpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,SAAS,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC;QAEtF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClG,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAElD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACjG,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAErG,IAAI,CAAC,MAAM,CAAC,IAAI,CACf,mCAAmC,QAAQ,CAAC,MAAM,iBAAiB,UAAU,CAAC,MAAM,EAAE,EACtF,WAAW,CACX,CAAC;QACF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACzF,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAyD,CAAC;QACtG,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACpC,uDAAuD;YACvD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YAC1F,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACrC,wDAAwD;YACxD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YAC3F,KAAK,CAAC,WAAW,GAAG,UAAU,CAAC;QAChC,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;CACD,CAAA;AAnDiB;IADhB,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;;4CACS;AAGjC;IADhB,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,oBAAoB,CAAC;;oDACwB;AAG1D;IADhB,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC;;6CACiB;AARlD,YAAY;IADxB,UAAU,EAAE;GACA,YAAY,CAqDxB"}
@@ -7,8 +7,7 @@ export declare class Consensus implements Contracts.Consensus.Service {
7
7
  private readonly processor;
8
8
  private readonly stateStore;
9
9
  private readonly proposalProcessor;
10
- private readonly prevoteProcessor;
11
- private readonly precommitProcessor;
10
+ private readonly messageProcessor;
12
11
  private readonly scheduler;
13
12
  private readonly validatorsRepository;
14
13
  private readonly roundStateRepository;
@@ -1 +1 @@
1
- {"version":3,"file":"consensus.d.ts","sourceRoot":"","sources":["../source/consensus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consensus.d.ts","sourceRoot":"","sources":["../source/consensus.ts"],"names":[],"mappings":"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"}
@@ -18,8 +18,7 @@ let Consensus = class Consensus {
18
18
  processor;
19
19
  stateStore;
20
20
  proposalProcessor;
21
- prevoteProcessor;
22
- precommitProcessor;
21
+ messageProcessor;
23
22
  scheduler;
24
23
  validatorsRepository;
25
24
  roundStateRepository;
@@ -375,7 +374,7 @@ let Consensus = class Consensus {
375
374
  continue;
376
375
  }
377
376
  const prevote = await localValidator.prevote(validatorIndex, this.#blockNumber, this.#round, value);
378
- void this.prevoteProcessor.process(prevote);
377
+ void this.messageProcessor.process(prevote);
379
378
  }
380
379
  }
381
380
  async precommit(value) {
@@ -390,7 +389,7 @@ let Consensus = class Consensus {
390
389
  continue;
391
390
  }
392
391
  const precommit = await localValidator.precommit(validatorIndex, this.#blockNumber, this.#round, value);
393
- void this.precommitProcessor.process(precommit);
392
+ void this.messageProcessor.process(precommit);
394
393
  }
395
394
  }
396
395
  async #bootstrap() {
@@ -483,13 +482,9 @@ __decorate([
483
482
  __metadata("design:type", Object)
484
483
  ], Consensus.prototype, "proposalProcessor", void 0);
485
484
  __decorate([
486
- inject(Identifiers.Consensus.Processor.PreVote),
485
+ inject(Identifiers.Consensus.Processor.Message),
487
486
  __metadata("design:type", Object)
488
- ], Consensus.prototype, "prevoteProcessor", void 0);
489
- __decorate([
490
- inject(Identifiers.Consensus.Processor.PreCommit),
491
- __metadata("design:type", Object)
492
- ], Consensus.prototype, "precommitProcessor", void 0);
487
+ ], Consensus.prototype, "messageProcessor", void 0);
493
488
  __decorate([
494
489
  inject(Identifiers.Consensus.Scheduler),
495
490
  __metadata("design:type", Object)
@@ -1 +1 @@
1
- {"version":3,"file":"consensus.js","sourceRoot":"","sources":["../source/consensus.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAGnB,IAAM,SAAS,GAAf,MAAM,SAAS;IAEJ,GAAG,CAAgC;IAGnC,YAAY,CAAoC;IAGhD,aAAa,CAAkC;IAG/C,SAAS,CAAsC;IAG/C,UAAU,CAAyB;IAGnC,iBAAiB,CAAyC;IAG1D,gBAAgB,CAAwC;IAGxD,kBAAkB,CAA0C;IAG5D,SAAS,CAAiC;IAG1C,oBAAoB,CAA2C;IAG/D,oBAAoB,CAA4C;IAGhE,UAAU,CAAyB;IAGnC,YAAY,CAAkC;IAG9C,eAAe,CAAoC;IAGnD,MAAM,CAA2B;IAGjC,gBAAgB,CAAkC;IAEnE,YAAY,GAAG,CAAC,CAAC;IACjB,MAAM,GAAG,CAAC,CAAC;IACX,KAAK,GAA6B,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;IAC/D,YAAY,CAAkC;IAC9C,WAAW,CAAkC;IAE7C,mBAAmB,GAAG,KAAK,CAAC;IAC5B,qBAAqB,GAAG,KAAK,CAAC;IAC9B,yCAAyC,GAAG,KAAK,CAAC;IAClD,WAAW,GAAG,KAAK,CAAC;IACpB,YAAY,GAAG,IAAI,GAAG,EAAkC,CAAC;IAEzD,cAAc,CAA0B;IACxC,gBAAgB,CAAsC;IACtD,eAAe,GAAG,CAAC,CAAC;IAEpB,oHAAoH;IAC3G,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;IAE5B,cAAc;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAEM,QAAQ;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAED,uBAAuB;IAChB,QAAQ,CAAC,KAAa;QAC5B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACrB,CAAC;IAEM,OAAO;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,uBAAuB;IAChB,OAAO,CAAC,IAA8B;QAC5C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,cAAc;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,CAAC;IAEM,aAAa;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,CAAC;IAED,uBAAuB;IAChB,aAAa,CAAC,KAAqC;QACzD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,uBAAuB;IAChB,WAAW,CAAC,eAAmD,EAAE,KAA6B;QACpG,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC7B,CAAC;IAEM,QAAQ;QACd,OAAO;YACN,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE;YAClC,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE;SAChC,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,GAAG;QACf,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEnC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAE3F,0EAA0E;QAC1E,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAClD,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;QACtF,CAAC;IACF,CAAC;IAEM,KAAK,CAAC,OAAO;QACnB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,UAA0C;QACtD,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACvC,OAAO;QACR,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAElC,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;YAC/C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAErC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,OAAO;YACR,CAAC;YAED,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAExC,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAClC,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAExC,IAAI,UAAU,CAAC,mBAAmB,EAAE,EAAE,CAAC;gBACtC,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAC1C,CAAC;YAED,IAAI,UAAU,CAAC,sBAAsB,EAAE,EAAE,CAAC;gBACzC,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;YAC7C,CAAC;YAED,IAAI,UAAU,CAAC,uBAAuB,EAAE,EAAE,CAAC;gBAC1C,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;YAC9C,CAAC;YAED,IAAI,UAAU,CAAC,wBAAwB,EAAE,EAAE,CAAC;gBAC3C,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;YAC/C,CAAC;YAED,IAAI,UAAU,CAAC,qBAAqB,EAAE,EAAE,CAAC;gBACxC,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,UAAU,CAAC,+BAA+B,EAAE,EAAE,CAAC;gBAClD,MAAM,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;YAClD,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,WAAgD;QACvE,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;YAC/C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,OAAO;YACR,CAAC;YAED,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAEtC,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,KAAa;QACpC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;QAC1C,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,eAAe,GAAG,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;QAEzC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAEzD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO;QACR,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3F,IAAI,CAAC,MAAM,CAAC,IAAI,CACf,0BAA0B,IAAI,CAAC,qBAAqB,EAAE,mBAAmB,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,EACtG,WAAW,CACX,CAAC;QAEF,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzF,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QAEvG,qBAAqB;QACrB,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,mBAAmB;QAC/B,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAEtE,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC;YAC7C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAEpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;YAErG,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAChC,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;IACF,CAAC;IAES,KAAK,CAAC,UAAU,CAAC,UAA0C;QACpE,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QAE1C,IACC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO;YAC3C,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC;YACrC,CAAC,QAAQ;YACT,QAAQ,CAAC,UAAU,KAAK,SAAS,EAChC,CAAC;YACF,OAAO;QACR,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;QAE1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QACjG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE7F,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7F,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,UAA0C;QAC1E,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QAE1C,IACC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO;YAC3C,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC;YACrC,CAAC,QAAQ;YACT,CAAC,QAAQ,CAAC,SAAS;YACnB,QAAQ,CAAC,UAAU,KAAK,SAAS;YACjC,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,EACjC,CAAC;YACF,OAAO;QACR,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;QAE1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QACxG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE7F,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAE1C,IAAI,CAAC,CAAC,WAAW,IAAI,WAAW,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC7F,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC;IACF,CAAC;IAES,KAAK,CAAC,iBAAiB,CAAC,UAA0C;QAC3E,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QAE1C,IACC,IAAI,CAAC,mBAAmB;YACxB,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO;YAC3C,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC;YACrC,CAAC,QAAQ;YACT,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,OAAO,EACvC,CAAC;YACF,OAAO;QACR,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAE1G,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAEhC,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACjD,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;YAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;YAE5C,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7F,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;YAE9B,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9F,CAAC;IACF,CAAC;IAES,KAAK,CAAC,oBAAoB,CAAC,UAA0C;QAC9E,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1F,OAAO;QACR,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzF,CAAC;IACF,CAAC;IAES,KAAK,CAAC,qBAAqB,CAAC,UAA0C;QAC/E,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1F,OAAO;QACR,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,IAAI,CAAC,qBAAqB,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAEjG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;QAE5C,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzF,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;IACxB,CAAC;IAES,KAAK,CAAC,sBAAsB,CAAC,UAA0C;QAChF,IAAI,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,OAAO;QACR,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7E,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5F,CAAC;IACF,CAAC;IAES,KAAK,CAAC,mBAAmB,CAClC,YAAiD,EACjD,eAAwB,IAAI;QAE5B,kEAAkE;QAClE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,YAAY,CAAC,WAAW,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YACpG,OAAO;QACR,CAAC;QAED,IAAI,YAAY,CAAC,kBAAkB,EAAE,KAAK,KAAK,EAAE,CAAC;YACjD,IAAI,IAAI,CAAC,yCAAyC,EAAE,CAAC;gBACpD,OAAO;YACR,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CACf,gCAAgC,IAAI,CAAC,qBAAqB,EAAE,2BAA2B,EACvF,WAAW,CACX,CAAC;YACF,IAAI,CAAC,yCAAyC,GAAG,IAAI,CAAC;YACtD,OAAO;QACR,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YAClB,oCAAoC;YACpC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QACnC,CAAC;QAED,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QAEtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAEpG,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YACxF,OAAO;QACR,CAAC;QAED,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,mBAAmB,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEhG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;YAC7C,IAAI,CAAC;gBACJ,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAC3D,CAAC;YAED,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;YAElC,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAC9B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;YAE7B,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,yBAAyB,CAAC,UAA+C;QACxF,IAAI,UAAU,CAAC,WAAW,KAAK,IAAI,CAAC,YAAY,IAAI,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACrF,OAAO;QACR,CAAC;QAED,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,WAAmB,EAAE,KAAa;QAC/D,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;YAC/C,IACC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO;gBAC3C,IAAI,CAAC,YAAY,KAAK,WAAW;gBACjC,IAAI,CAAC,MAAM,KAAK,KAAK,EACpB,CAAC;gBACF,OAAO;YACR,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,qBAAqB,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAE5F,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;YAC1C,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,WAAmB,EAAE,KAAa;QAC/D,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;YAC/C,IACC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO;gBAC3C,IAAI,CAAC,YAAY,KAAK,WAAW;gBACjC,IAAI,CAAC,MAAM,KAAK,KAAK,EACpB,CAAC;gBACF,OAAO;YACR,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,qBAAqB,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAC5F,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAEtF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;YAC5C,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,WAAmB,EAAE,KAAa;QACjE,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;YAC/C,IAAI,IAAI,CAAC,YAAY,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAChE,OAAO;YACR,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,qBAAqB,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAC9F,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YACtF,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;YAExF,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,oBAAoB,CAAC,UAA+C;QACnE,IAAI,UAAU,CAAC,WAAW,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YAClD,OAAO,IAAI,CAAC;QACb,CAAC;QAED,IAAI,UAAU,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACb,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,UAA0C;QAC9D,IAAI,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9B,OAAO;QACR,CAAC;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAEpG,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO;QACR,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;QAE3F,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,aAAa,CAClB,UAA0C,EAC1C,kBAAiD;QAEjD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAClD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;YAE7D,IAAI,CAAC,MAAM,CAAC,IAAI,CACf,wCAAwC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,EAC1F,WAAW,CACX,CAAC;YAEF,OAAO,MAAM,kBAAkB,CAAC,OAAO,CACtC,IAAI,CAAC,YAAY,CAAC,gCAAgC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC/E,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,WAAW,CAAC,KAAK,EACtB,IAAI,CAAC,cAAc,EACnB,SAAS,CACT,CAAC;QACH,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAChF,UAAU,CAAC,QAAQ,CAAC,OAAO,EAC3B,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,CAC1D,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CACf,mCAAmC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,EACrF,WAAW,CACX,CAAC;QAEF,KAAK,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAEvF,OAAO,kBAAkB,CAAC,OAAO,CAChC,IAAI,CAAC,YAAY,CAAC,gCAAgC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC/E,IAAI,CAAC,MAAM,EACX,SAAS,EACT,IAAI,CAAC,cAAc,CACnB,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,KAAc;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3F,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAChE,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACtF,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBAClC,SAAS;YACV,CAAC;YAED,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,gCAAgC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC7F,IAAI,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC3C,SAAS;YACV,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAEpG,KAAK,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;IACF,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,KAAc;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3F,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAChE,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACtF,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBAClC,SAAS;YACV,CAAC;YAED,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,gCAAgC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC7F,IAAI,UAAU,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC7C,SAAS;YACV,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAExG,KAAK,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC;IACF,CAAC;IAED,KAAK,CAAC,UAAU;QACf,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAEnE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QAE5C,IAAI,KAAK,EAAE,CAAC;YACX,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC7C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;gBACxB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC1B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC;gBACtC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACP,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACnE,MAAM,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBAEpE,IAAI,CAAC,MAAM,CAAC,IAAI,CACf,0DAA0D,iBAAiB,mBAAmB,kBAAkB,EAAE,EAClH,WAAW,CACX,CAAC;gBAEF,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;YACnC,CAAC;QACF,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CACd,6BACC,IAAI,CAAC,YACN,8CAA8C,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE,CAC9E,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CACf,qCAAqC,IAAI,CAAC,qBAAqB,EAAE,qBAAqB,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,EACvH,WAAW,CACX,CAAC;QAEF,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,UAA0C;QAChE,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,IAAI,QAAQ,EAAE,CAAC;YAClD,IAAI,CAAC;gBACJ,MAAM,QAAQ,CAAC,eAAe,EAAE,CAAC;gBAEjC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;oBACjE,UAAU,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;oBACnF,OAAO;gBACR,CAAC;gBAED,UAAU,CAAC,kBAAkB,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;YACzE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAChB,8BAA8B,IAAI,CAAC,qBAAqB,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,EAC9E,WAAW,CACX,CAAC;gBAEF,UAAU,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YACpF,CAAC;QACF,CAAC;IACF,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,WAAgD;QACnE,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC;gBACJ,WAAW,CAAC,kBAAkB,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;YAC3E,CAAC;YAAC,MAAM,CAAC;gBACR,WAAW,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YACrF,CAAC;QACF,CAAC;IACF,CAAC;IAED,qBAAqB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAE1D,OAAO,GAAG,MAAM,IAAI,cAAc,EAAE,CAAC;IACtC,CAAC;IAED,eAAe,CAAC,KAAmC;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAEtD,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YACjC,OAAO,GAAG,MAAM,IAAI,cAAc,IAAI,UAAU,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QACnE,CAAC;QAED,OAAO,GAAG,MAAM,IAAI,cAAc,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;IACpD,CAAC;CACD,CAAA;AAjpBiB;IADhB,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;;sCACW;AAGnC;IADhB,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC;;+CACsB;AAGhD;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,aAAa,CAAC;;gDACiB;AAG/C;IADhB,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC;;4CACmB;AAG/C;IADhB,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;;6CACoB;AAGnC;IADhB,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;;oDAC0B;AAG1D;IADhB,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC;;mDACyB;AAGxD;IADhB,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC;;qDAC2B;AAG5D;IADhB,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC;;4CACmB;AAG1C;IADhB,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC;;uDACuC;AAG/D;IADhB,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,oBAAoB,CAAC;;uDAC8B;AAGhE;IADhB,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC;;6CACW;AAGnC;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC;;+CACsB;AAG9C;IADhB,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC;;kDACe;AAGnD;IADhB,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;;yCACS;AAGjC;IADhB,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC;;mDACyB;AA/CvD,SAAS;IADrB,UAAU,EAAE;GACA,SAAS,CAmpBrB"}
1
+ {"version":3,"file":"consensus.js","sourceRoot":"","sources":["../source/consensus.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,2 @@
1
- import { Providers } from "@mainsail/kernel";
2
- export declare class ServiceProvider extends Providers.ServiceProvider {
3
- register(): Promise<void>;
4
- dispose(): Promise<void>;
5
- }
1
+ export * from "./service-provider.js";
6
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAW7C,qBACa,eAAgB,SAAQ,SAAS,CAAC,eAAe;IAChD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAIrC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
@@ -1,43 +1,2 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { Identifiers } from "@mainsail/constants";
8
- import { injectable } from "@mainsail/container";
9
- import { Providers } from "@mainsail/kernel";
10
- import { Lock } from "@mainsail/utils";
11
- import { Aggregator } from "./aggregator.js";
12
- import { Bootstrapper } from "./bootstrapper.js";
13
- import { CommitState } from "./commit-state.js";
14
- import { Consensus } from "./consensus.js";
15
- import { CommitProcessor, PrecommitProcessor, PrevoteProcessor, ProposalProcessor } from "./processors/index.js";
16
- import { RoundStateRepository } from "./round-state-repository.js";
17
- import { Scheduler } from "./scheduler.js";
18
- let ServiceProvider = class ServiceProvider extends Providers.ServiceProvider {
19
- async register() {
20
- this.app.bind(Identifiers.Consensus.Aggregator).to(Aggregator).inSingletonScope();
21
- this.app.bind(Identifiers.Consensus.RoundStateRepository).to(RoundStateRepository).inSingletonScope();
22
- this.app.bind(Identifiers.Consensus.Scheduler).to(Scheduler).inSingletonScope();
23
- this.app.bind(Identifiers.Consensus.Processor.Proposal).to(ProposalProcessor).inSingletonScope();
24
- this.app.bind(Identifiers.Consensus.Processor.PreVote).to(PrevoteProcessor).inSingletonScope();
25
- this.app.bind(Identifiers.Consensus.Processor.PreCommit).to(PrecommitProcessor).inSingletonScope();
26
- this.app.bind(Identifiers.Consensus.Processor.Commit).to(CommitProcessor).inSingletonScope();
27
- this.app.bind(Identifiers.Consensus.CommitLock).toConstantValue(new Lock());
28
- this.app
29
- .bind(Identifiers.Consensus.CommitState.Factory)
30
- .toFactory((context) => (commit) => context.get(CommitState, { autobind: true }).configure(commit));
31
- this.app.bind(Identifiers.Consensus.Bootstrapper).to(Bootstrapper).inSingletonScope();
32
- this.app.bind(Identifiers.Consensus.Service).to(Consensus).inSingletonScope();
33
- }
34
- async dispose() {
35
- const consensus = this.app.get(Identifiers.Consensus.Service);
36
- await consensus.dispose();
37
- }
38
- };
39
- ServiceProvider = __decorate([
40
- injectable()
41
- ], ServiceProvider);
42
- export { ServiceProvider };
1
+ export * from "./service-provider.js";
43
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
@@ -41,7 +41,7 @@ let CommitProcessor = class CommitProcessor extends AbstractProcessor {
41
41
  if (!isMajority(publicKeys.length, roundValidators)) {
42
42
  return false;
43
43
  }
44
- const precommit = await this.serializer.serializePrecommitForSignature({
44
+ const precommit = await this.serializer.serializeMessageForSignature({
45
45
  blockHash: block.data.hash,
46
46
  blockNumber: block.data.number,
47
47
  round: proof.round,
@@ -1 +1 @@
1
- {"version":3,"file":"commit-processor.js","sourceRoot":"","sources":["../../source/processors/commit-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commit-processor.js","sourceRoot":"","sources":["../../source/processors/commit-processor.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  export * from "./commit-processor.js";
2
- export * from "./precommit-processor.js";
3
- export * from "./prevote-processor.js";
2
+ export * from "./message-processor.js";
4
3
  export * from "./proposal-processor.js";
5
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/processors/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/processors/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC"}
@@ -1,5 +1,4 @@
1
1
  export * from "./commit-processor.js";
2
- export * from "./precommit-processor.js";
3
- export * from "./prevote-processor.js";
2
+ export * from "./message-processor.js";
4
3
  export * from "./proposal-processor.js";
5
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/processors/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/processors/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { Contracts } from "@mainsail/contracts";
2
2
  import { AbstractProcessor } from "./abstract-processor.js";
3
- export declare class PrevoteProcessor extends AbstractProcessor implements Contracts.Consensus.PrevoteProcessor {
3
+ export declare class MessageProcessor extends AbstractProcessor implements Contracts.Consensus.MessageProcessor {
4
4
  #private;
5
5
  private readonly serializer;
6
6
  private readonly validatorSet;
@@ -8,6 +8,6 @@ export declare class PrevoteProcessor extends AbstractProcessor implements Contr
8
8
  private readonly broadcaster;
9
9
  private readonly workerPool;
10
10
  protected readonly logger: Contracts.Kernel.Logger;
11
- process(prevote: Contracts.Crypto.Prevote, broadcast?: boolean): Promise<Contracts.Consensus.ProcessorResult>;
11
+ process(message: Contracts.Crypto.Message, broadcast?: boolean): Promise<Contracts.Consensus.ProcessorResult>;
12
12
  }
13
- //# sourceMappingURL=prevote-processor.d.ts.map
13
+ //# sourceMappingURL=message-processor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prevote-processor.d.ts","sourceRoot":"","sources":["../../source/processors/prevote-processor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAQ5D,qBACa,gBAAiB,SAAQ,iBAAkB,YAAW,SAAS,CAAC,SAAS,CAAC,gBAAgB;;IAEtG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsC;IAGjE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAG/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4C;IAG3E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IAGzD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAG1D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;IAI9C,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,UAAO,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC;CA2EhH"}
1
+ {"version":3,"file":"message-processor.d.ts","sourceRoot":"","sources":["../../source/processors/message-processor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAQ5D,qBACa,gBAAiB,SAAQ,iBAAkB,YAAW,SAAS,CAAC,SAAS,CAAC,gBAAgB;;IAEtG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsC;IAGjE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAG/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4C;IAG3E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IAGzD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAG1D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;IAI9C,OAAO,CACZ,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO,EACjC,SAAS,GAAE,OAAc,GACvB,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC;CA6E/C"}
@@ -9,6 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  import { Enums, Identifiers } from "@mainsail/constants";
11
11
  import { inject, injectable } from "@mainsail/container";
12
+ import { assert } from "@mainsail/utils";
12
13
  import { AbstractProcessor } from "./abstract-processor.js";
13
14
  var SignatureCheckResult;
14
15
  (function (SignatureCheckResult) {
@@ -16,31 +17,31 @@ var SignatureCheckResult;
16
17
  SignatureCheckResult[SignatureCheckResult["Invalid"] = 1] = "Invalid";
17
18
  SignatureCheckResult[SignatureCheckResult["Accepted"] = 2] = "Accepted";
18
19
  })(SignatureCheckResult || (SignatureCheckResult = {}));
19
- let PrecommitProcessor = class PrecommitProcessor extends AbstractProcessor {
20
+ let MessageProcessor = class MessageProcessor extends AbstractProcessor {
20
21
  serializer;
21
22
  validatorSet;
22
23
  roundStateRepo;
23
24
  broadcaster;
24
25
  workerPool;
25
26
  logger;
26
- #pendingPrecommits = new Map();
27
- async process(precommit, broadcast = true) {
27
+ #pendingMessages = new Map();
28
+ async process(message, broadcast = true) {
28
29
  return this.commitLock.runNonExclusive(async () => {
29
- if (!this.hasValidBlockNumberOrRound(precommit)) {
30
+ if (!this.hasValidBlockNumberOrRound(message)) {
30
31
  return Enums.Consensus.ProcessorResult.Skipped;
31
32
  }
32
- if (!this.isRoundInBounds(precommit)) {
33
+ if (!this.isRoundInBounds(message)) {
33
34
  return Enums.Consensus.ProcessorResult.Invalid;
34
35
  }
35
- const roundState = this.roundStateRepo.getRoundState(precommit.blockNumber, precommit.round);
36
- if (roundState.hasPrecommit(precommit.validatorIndex)) {
37
- const existingPrecommit = roundState.getPrecommit(precommit.validatorIndex);
38
- if (existingPrecommit && !existingPrecommit.serialized.equals(precommit.serialized)) {
39
- this.logger.warn(`Conflicting precommits for validator index ${precommit.validatorIndex} in block ${precommit.blockNumber}/${precommit.round}. Existing: ${existingPrecommit.serialized.toString("hex")}, New: ${precommit.serialized.toString("hex")}`);
36
+ const roundState = this.roundStateRepo.getRoundState(message.blockNumber, message.round);
37
+ if (roundState.hasMessage(message)) {
38
+ const existingMessage = roundState.getMessage(message.validatorIndex, message.type);
39
+ if (existingMessage && !existingMessage.serialized.equals(message.serialized)) {
40
+ this.logger.warn(`Conflicting ${message.type === Enums.Crypto.MessageType.Prevote ? "prevote" : "precommit"} for validator index ${message.validatorIndex} in block ${message.blockNumber}/${message.round}. Existing: ${existingMessage.serialized.toString("hex")}, New: ${message.serialized.toString("hex")}`);
40
41
  }
41
42
  return Enums.Consensus.ProcessorResult.Skipped;
42
43
  }
43
- switch (await this.#signatureCheck(precommit)) {
44
+ switch (await this.#signatureCheck(message)) {
44
45
  case SignatureCheckResult.Skip: {
45
46
  return Enums.Consensus.ProcessorResult.Skipped;
46
47
  }
@@ -48,62 +49,66 @@ let PrecommitProcessor = class PrecommitProcessor extends AbstractProcessor {
48
49
  return Enums.Consensus.ProcessorResult.Invalid;
49
50
  }
50
51
  }
51
- roundState.addPrecommit(precommit);
52
+ roundState.addMessage(message);
52
53
  if (broadcast) {
53
- void this.broadcaster.broadcastPrecommit(precommit);
54
+ void this.broadcaster.broadcastMessage(message);
54
55
  }
55
56
  void this.getConsensus().handle(roundState);
56
57
  return Enums.Consensus.ProcessorResult.Accepted;
57
58
  });
58
59
  }
59
- async #signatureCheck(precommit) {
60
- const serializedHex = precommit.serialized.toString("hex");
61
- if (this.#pendingPrecommits.has(serializedHex)) {
60
+ async #signatureCheck(message) {
61
+ const serializedHex = message.serialized.toString("hex");
62
+ if (this.#pendingMessages.has(serializedHex)) {
62
63
  return new Promise((resolve) => {
63
- this.#pendingPrecommits.get(serializedHex).push(resolve);
64
+ const pendingMessages = this.#pendingMessages.get(serializedHex);
65
+ assert.defined(pendingMessages);
66
+ pendingMessages.push(resolve);
64
67
  });
65
68
  }
66
69
  else {
67
- this.#pendingPrecommits.set(serializedHex, []);
70
+ this.#pendingMessages.set(serializedHex, []);
68
71
  }
69
- const hasValidSignature = await this.#hasValidSignature(precommit);
70
- for (const resolve of this.#pendingPrecommits.get(serializedHex)) {
72
+ const hasValidSignature = await this.#hasValidSignature(message);
73
+ const pendingMessages = this.#pendingMessages.get(serializedHex);
74
+ assert.defined(pendingMessages);
75
+ for (const resolve of pendingMessages) {
71
76
  resolve(hasValidSignature ? SignatureCheckResult.Skip : SignatureCheckResult.Invalid);
72
77
  }
73
- this.#pendingPrecommits.delete(serializedHex);
78
+ this.#pendingMessages.delete(serializedHex);
74
79
  return hasValidSignature ? SignatureCheckResult.Accepted : SignatureCheckResult.Invalid;
75
80
  }
76
- async #hasValidSignature(precommit) {
81
+ async #hasValidSignature(message) {
77
82
  const worker = await this.workerPool.getWorker();
78
- return worker.consensusSignature("verify", Buffer.from(precommit.signature, "hex"), await this.serializer.serializePrecommitForSignature(precommit), Buffer.from(this.validatorSet.getValidator(precommit.validatorIndex).blsPublicKey, "hex"));
83
+ return worker.consensusSignature("verify", Buffer.from(message.signature, "hex"), await this.serializer.serializeMessageForSignature(message), Buffer.from(this.validatorSet.getValidator(message.validatorIndex).blsPublicKey, "hex"));
79
84
  }
80
85
  };
81
86
  __decorate([
82
87
  inject(Identifiers.Cryptography.Message.Serializer),
83
88
  __metadata("design:type", Object)
84
- ], PrecommitProcessor.prototype, "serializer", void 0);
89
+ ], MessageProcessor.prototype, "serializer", void 0);
85
90
  __decorate([
86
91
  inject(Identifiers.ValidatorSet.Service),
87
92
  __metadata("design:type", Object)
88
- ], PrecommitProcessor.prototype, "validatorSet", void 0);
93
+ ], MessageProcessor.prototype, "validatorSet", void 0);
89
94
  __decorate([
90
95
  inject(Identifiers.Consensus.RoundStateRepository),
91
96
  __metadata("design:type", Object)
92
- ], PrecommitProcessor.prototype, "roundStateRepo", void 0);
97
+ ], MessageProcessor.prototype, "roundStateRepo", void 0);
93
98
  __decorate([
94
99
  inject(Identifiers.P2P.Broadcaster),
95
100
  __metadata("design:type", Object)
96
- ], PrecommitProcessor.prototype, "broadcaster", void 0);
101
+ ], MessageProcessor.prototype, "broadcaster", void 0);
97
102
  __decorate([
98
103
  inject(Identifiers.CryptoWorker.WorkerPool),
99
104
  __metadata("design:type", Object)
100
- ], PrecommitProcessor.prototype, "workerPool", void 0);
105
+ ], MessageProcessor.prototype, "workerPool", void 0);
101
106
  __decorate([
102
107
  inject(Identifiers.Services.Log.Service),
103
108
  __metadata("design:type", Object)
104
- ], PrecommitProcessor.prototype, "logger", void 0);
105
- PrecommitProcessor = __decorate([
109
+ ], MessageProcessor.prototype, "logger", void 0);
110
+ MessageProcessor = __decorate([
106
111
  injectable()
107
- ], PrecommitProcessor);
108
- export { PrecommitProcessor };
109
- //# sourceMappingURL=precommit-processor.js.map
112
+ ], MessageProcessor);
113
+ export { MessageProcessor };
114
+ //# sourceMappingURL=message-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-processor.js","sourceRoot":"","sources":["../../source/processors/message-processor.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { Contracts } from "@mainsail/contracts";
2
2
  import { AbstractProcessor } from "./abstract-processor.js";
3
3
  export declare class ProposalProcessor extends AbstractProcessor implements Contracts.Consensus.ProposalProcessor {
4
4
  #private;
5
+ private readonly proposalSerializer;
5
6
  private readonly messageSerializer;
6
7
  private readonly consensusSignature;
7
8
  private readonly configuration;
@@ -1 +1 @@
1
- {"version":3,"file":"proposal-processor.d.ts","sourceRoot":"","sources":["../../source/processors/proposal-processor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,qBACa,iBAAkB,SAAQ,iBAAkB,YAAW,SAAS,CAAC,SAAS,CAAC,iBAAiB;;IAExG,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsC;IAIxE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8B;IAGjE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAGhE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAG7D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgD;IAGnF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAG/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4C;IAG3E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IAGzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAE5C,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,UAAO,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC;IAsC5G,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;CAqD9E"}
1
+ {"version":3,"file":"proposal-processor.d.ts","sourceRoot":"","sources":["../../source/processors/proposal-processor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,qBACa,iBAAkB,SAAQ,iBAAkB,YAAW,SAAS,CAAC,SAAS,CAAC,iBAAiB;;IAExG,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuC;IAG1E,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsC;IAIxE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA8B;IAGjE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAGhE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAG7D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgD;IAGnF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAG/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4C;IAG3E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IAGzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAE5C,OAAO,CACZ,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,EACnC,SAAS,GAAE,OAAc,GACvB,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC;IAsCzC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;CAqD9E"}
@@ -11,6 +11,7 @@ import { Enums, Identifiers } from "@mainsail/constants";
11
11
  import { inject, injectable, tagged } from "@mainsail/container";
12
12
  import { AbstractProcessor } from "./abstract-processor.js";
13
13
  let ProposalProcessor = class ProposalProcessor extends AbstractProcessor {
14
+ proposalSerializer;
14
15
  messageSerializer;
15
16
  consensusSignature;
16
17
  configuration;
@@ -61,7 +62,7 @@ let ProposalProcessor = class ProposalProcessor extends AbstractProcessor {
61
62
  this.logger.debug(`Received proposal ${proposal.blockHeader.number}/${proposal.round} with missing lock proof`, "consensus");
62
63
  return true;
63
64
  }
64
- const data = await this.messageSerializer.serializePrevoteForSignature({
65
+ const data = await this.messageSerializer.serializeMessageForSignature({
65
66
  blockHash: proposal.blockHeader.hash,
66
67
  blockNumber: proposal.blockHeader.number,
67
68
  round: proposal.validRound,
@@ -78,9 +79,13 @@ let ProposalProcessor = class ProposalProcessor extends AbstractProcessor {
78
79
  return proposal.validatorIndex === this.proposerCalculator.getValidatorIndex(proposal.round);
79
80
  }
80
81
  async #hasValidSignature(proposal) {
81
- return this.consensusSignature.verify(Buffer.from(proposal.signature, "hex"), await this.messageSerializer.serializeProposal(proposal.toSerializableData(), { includeSignature: false }), Buffer.from(this.validatorSet.getValidator(proposal.validatorIndex).blsPublicKey, "hex"));
82
+ return this.consensusSignature.verify(Buffer.from(proposal.signature, "hex"), await this.proposalSerializer.serializeProposal(proposal.toSerializableData(), { includeSignature: false }), Buffer.from(this.validatorSet.getValidator(proposal.validatorIndex).blsPublicKey, "hex"));
82
83
  }
83
84
  };
85
+ __decorate([
86
+ inject(Identifiers.Cryptography.Proposal.Serializer),
87
+ __metadata("design:type", Object)
88
+ ], ProposalProcessor.prototype, "proposalSerializer", void 0);
84
89
  __decorate([
85
90
  inject(Identifiers.Cryptography.Message.Serializer),
86
91
  __metadata("design:type", Object)
@@ -1 +1 @@
1
- {"version":3,"file":"proposal-processor.js","sourceRoot":"","sources":["../../source/processors/proposal-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proposal-processor.js","sourceRoot":"","sources":["../../source/processors/proposal-processor.ts"],"names":[],"mappings":"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"}
@@ -25,19 +25,23 @@ export declare class RoundState implements Contracts.Consensus.RoundState {
25
25
  getAccountUpdates(): Array<Contracts.Evm.AccountUpdate>;
26
26
  setAccountUpdates(accounts: Array<Contracts.Evm.AccountUpdate>): void;
27
27
  hasPrevote(validatorIndex: number): boolean;
28
- addPrevote(prevote: Contracts.Crypto.Prevote): void;
28
+ addPrevote(prevote: Contracts.Crypto.Message): void;
29
29
  hasPrecommit(validatorIndex: number): boolean;
30
- addPrecommit(precommit: Contracts.Crypto.Precommit): void;
30
+ addPrecommit(precommit: Contracts.Crypto.Message): void;
31
+ hasMessage(message: Contracts.Crypto.Message): boolean;
32
+ getMessage(validatorIndex: number, type: Contracts.Crypto.MessageType): Contracts.Crypto.Message | undefined;
33
+ addMessage(message: Contracts.Crypto.Message): void;
31
34
  hasMajorityPrevotes(): boolean;
32
35
  hasMajorityPrevotesAny(): boolean;
33
36
  hasMajorityPrevotesNull(): boolean;
34
37
  hasMajorityPrecommits(): boolean;
35
38
  hasMajorityPrecommitsAny(): boolean;
36
39
  hasMinorityPrevotesOrPrecommits(): boolean;
37
- getPrevote(validatorIndex: number): Contracts.Crypto.Prevote | undefined;
38
- getPrevotes(): Contracts.Crypto.Prevote[];
39
- getPrecommit(validatorIndex: number): Contracts.Crypto.Precommit | undefined;
40
- getPrecommits(): Contracts.Crypto.Precommit[];
40
+ getPrevote(validatorIndex: number): Contracts.Crypto.Message | undefined;
41
+ getPrevotes(): Contracts.Crypto.Message[];
42
+ getPrecommit(validatorIndex: number): Contracts.Crypto.Message | undefined;
43
+ getMessages(): Contracts.Crypto.Message[];
44
+ getPrecommits(): Contracts.Crypto.Message[];
41
45
  getValidatorsSignedPrevote(): readonly boolean[];
42
46
  getValidatorsSignedPrecommit(): readonly boolean[];
43
47
  aggregatePrevotes(): Promise<Contracts.Crypto.AggregatedSignature>;
@@ -1 +1 @@
1
- {"version":3,"file":"round-state.d.ts","sourceRoot":"","sources":["../source/round-state.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,qBACa,UAAW,YAAW,SAAS,CAAC,SAAS,CAAC,UAAU;;IAEhE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAG7D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAGhE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAG/D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgD;IAGnF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqC;IAGtE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAkBlD,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED,IAAW,UAAU,IAAI,MAAM,EAAE,CAEhC;IAED,IAAW,QAAQ,IAAI,SAAS,CAAC,KAAK,CAAC,eAAe,CAErD;IAEM,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU;IAmBzD,YAAY,CAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,eAAe;IAMzE,WAAW,IAAI,OAAO;IAItB,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI;IAQtD,WAAW,IAAI,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,SAAS;IAIpD,QAAQ,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK;IAQ5B,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;IA6BnD,kBAAkB,CAAC,eAAe,EAAE,SAAS,CAAC,SAAS,CAAC,oBAAoB,GAAG,IAAI;IAInF,kBAAkB,IAAI,OAAO;IAI7B,kBAAkB,IAAI,SAAS,CAAC,SAAS,CAAC,oBAAoB;IAQ9D,iBAAiB,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC;IAIvD,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI;IAIrE,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAI3C,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI;IAUnD,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAI7C,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI;IAUzD,mBAAmB,IAAI,OAAO;IAQ9B,sBAAsB,IAAI,OAAO;IAIjC,uBAAuB,IAAI,OAAO;IAIlC,qBAAqB,IAAI,OAAO;IAQhC,wBAAwB,IAAI,OAAO;IAInC,+BAA+B,IAAI,OAAO;IAI1C,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,GAAG,SAAS;IAIxE,WAAW,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE;IAIzC,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS;IAI5E,aAAa,IAAI,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE;IAI7C,0BAA0B,IAAI,SAAS,OAAO,EAAE;IAIhD,4BAA4B,IAAI,SAAS,OAAO,EAAE;IAI5C,iBAAiB,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAKlE,mBAAmB,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAK1E,WAAW,IAAI,IAAI;IAUnB,aAAa,IAAI,IAAI;CAwD5B"}
1
+ {"version":3,"file":"round-state.d.ts","sourceRoot":"","sources":["../source/round-state.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { isMajority, isMinority } from "@mainsail/blockchain-utils";
11
- import { Identifiers } from "@mainsail/constants";
11
+ import { Enums, Identifiers } from "@mainsail/constants";
12
12
  import { inject, injectable } from "@mainsail/container";
13
13
  import { assert } from "@mainsail/utils";
14
14
  let RoundState = class RoundState {
@@ -146,6 +146,47 @@ let RoundState = class RoundState {
146
146
  this.#validatorsSignedPrecommit[precommit.validatorIndex] = true;
147
147
  this.#increasePrecommitCount(precommit.blockHash);
148
148
  }
149
+ hasMessage(message) {
150
+ switch (message.type) {
151
+ case Enums.Crypto.MessageType.Prevote: {
152
+ return this.#prevotes.has(message.validatorIndex);
153
+ }
154
+ case Enums.Crypto.MessageType.Precommit: {
155
+ return this.#precommits.has(message.validatorIndex);
156
+ }
157
+ default: {
158
+ throw new Error(`Invalid message type: ${message.type}`);
159
+ }
160
+ }
161
+ }
162
+ getMessage(validatorIndex, type) {
163
+ switch (type) {
164
+ case Enums.Crypto.MessageType.Prevote: {
165
+ return this.#prevotes.get(validatorIndex);
166
+ }
167
+ case Enums.Crypto.MessageType.Precommit: {
168
+ return this.#precommits.get(validatorIndex);
169
+ }
170
+ default: {
171
+ throw new Error(`Invalid message type: ${type}`);
172
+ }
173
+ }
174
+ }
175
+ addMessage(message) {
176
+ switch (message.type) {
177
+ case Enums.Crypto.MessageType.Prevote: {
178
+ this.addPrevote(message);
179
+ break;
180
+ }
181
+ case Enums.Crypto.MessageType.Precommit: {
182
+ this.addPrecommit(message);
183
+ break;
184
+ }
185
+ default: {
186
+ throw new Error(`Invalid message type: ${message.type}`);
187
+ }
188
+ }
189
+ }
149
190
  hasMajorityPrevotes() {
150
191
  if (!this.#proposal || !this.#proposal.isDataDeserialized) {
151
192
  return false;
@@ -179,6 +220,9 @@ let RoundState = class RoundState {
179
220
  getPrecommit(validatorIndex) {
180
221
  return this.#precommits.get(validatorIndex);
181
222
  }
223
+ getMessages() {
224
+ return [...this.#prevotes.values(), ...this.#precommits.values()];
225
+ }
182
226
  getPrecommits() {
183
227
  return [...this.#precommits.values()];
184
228
  }
@@ -1 +1 @@
1
- {"version":3,"file":"round-state.js","sourceRoot":"","sources":["../source/round-state.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGlC,IAAM,UAAU,GAAhB,MAAM,UAAU;IAEL,UAAU,CAAkC;IAG5C,aAAa,CAAkC;IAG/C,YAAY,CAAkC;IAG9C,kBAAkB,CAAgD;IAGlE,gBAAgB,CAAqC;IAGrD,MAAM,CAA2B;IAElD,YAAY,GAAG,CAAC,CAAC;IACjB,MAAM,GAAG,CAAC,CAAC;IACX,SAAS,CAA6B;IACtC,gBAAgB,CAA4C;IAC5D,eAAe,GAAuC,EAAE,CAAC;IACzD,SAAS,GAAG,IAAI,GAAG,EAAoC,CAAC;IACxD,cAAc,GAAG,IAAI,GAAG,EAA8B,CAAC;IACvD,WAAW,GAAG,IAAI,GAAG,EAAsC,CAAC;IAC5D,gBAAgB,GAAG,IAAI,GAAG,EAA8B,CAAC;IACzD,WAAW,GAAG,IAAI,GAAG,EAA2C,CAAC;IACjE,wBAAwB,GAAc,EAAE,CAAC;IACzC,0BAA0B,GAAc,EAAE,CAAC;IAC3C,SAAS,CAAmC;IAE5C,OAAO,CAAsC;IAE7C,IAAW,WAAW;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAED,IAAW,KAAK;QACf,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAED,IAAW,OAAO;QACjB,OAAO,IAAI,CAAC,CAAC,qCAAqC;IACnD,CAAC;IAED,IAAW,UAAU;QACpB,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAEM,SAAS,CAAC,WAAmB,EAAE,KAAa;QAClD,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC;QAC1D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACpC,MAAM,kBAAkB,GAAG,SAAS,CAAC,YAAY,CAAC;YAClD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;YACpD,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAExE,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;QAE5C,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,YAAY,CAAC,kBAA0B;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAC3D,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1B,OAAO,SAAS,CAAC;IAClB,CAAC;IAEM,WAAW;QACjB,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IACzB,CAAC;IAEM,WAAW,CAAC,QAAmC;QACrD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEM,WAAW;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAEM,QAAQ;QACd,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;YACzD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC;QACvC,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACxF,CAAC;IAEM,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAElD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEzB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;YAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC;YAEvC,MAAM,MAAM,GAAwC;gBACnD,KAAK;gBACL,KAAK,EAAE;oBACN,KAAK;oBACL,GAAG,QAAQ;iBACX;aACD,CAAC;YAEF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAEvE,IAAI,CAAC,OAAO,GAAG;gBACd,GAAG,MAAM;gBACT,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;aACtC,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAEM,kBAAkB,CAAC,eAAyD;QAClF,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;IACzC,CAAC;IAEM,kBAAkB;QACxB,OAAO,IAAI,CAAC,gBAAgB,KAAK,SAAS,CAAC;IAC5C,CAAC;IAEM,kBAAkB;QACxB,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC9B,CAAC;IAEM,iBAAiB;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC;IAEM,iBAAiB,CAAC,QAA4C;QACpE,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;IACjC,CAAC;IAEM,UAAU,CAAC,cAAsB;QACvC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC3C,CAAC;IAEM,UAAU,CAAC,OAAiC;QAClD,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;QAC7D,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAEM,YAAY,CAAC,cAAsB;QACzC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC7C,CAAC;IAEM,YAAY,CAAC,SAAqC;QACxD,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QAC1D,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;QACjE,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAEM,mBAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;YAC3D,OAAO,KAAK,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACjF,CAAC;IAEM,sBAAsB;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEM,uBAAuB;QAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClD,CAAC;IAEM,qBAAqB;QAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;YAC3D,OAAO,KAAK,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACnF,CAAC;IAEM,wBAAwB;QAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAEM,+BAA+B;QACrC,OAAO,IAAI,CAAC,oBAAoB,EAAE,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;IACrE,CAAC;IAEM,UAAU,CAAC,cAAsB;QACvC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC3C,CAAC;IAEM,WAAW;QACjB,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;IAEM,YAAY,CAAC,cAAsB;QACzC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC7C,CAAC;IAEM,aAAa;QACnB,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;IAEM,0BAA0B;QAChC,OAAO,IAAI,CAAC,wBAAwB,CAAC;IACtC,CAAC;IAEM,4BAA4B;QAClC,OAAO,IAAI,CAAC,0BAA0B,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,iBAAiB;QAC7B,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC,CAAC;IACxF,CAAC;IAEM,KAAK,CAAC,mBAAmB;QAC/B,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC,CAAC;IAC1F,CAAC;IAEM,WAAW;QACjB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;iBACzC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,GAAG,CAAC;iBAC9C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC;YAEnF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,MAAM,iBAAiB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAC5F,CAAC;IACF,CAAC;IAEM,aAAa;QACnB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;iBAC3C,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,KAAK,GAAG,CAAC;iBAClD,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC;YAEvF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,MAAM,qBAAqB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAChG,CAAC;IACF,CAAC;IAED,oBAAoB;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,sBAAsB;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,WAAW,CAAC,IAAY;QACvB,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/E,OAAO,UAAU,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED,WAAW,CAAC,IAAY;QACvB,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/E,OAAO,UAAU,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED,qBAAqB,CAAC,SAAkB;QACvC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,gBAAgB,CAAC,SAAkB;QAClC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,uBAAuB,CAAC,SAAkB;QACzC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,kBAAkB,CAAC,SAAkB;QACpC,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,cAAc,CAAC,CAAyD;QACvE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAuC,IAAI,GAAG,EAAE,CAAC;QAE/D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;gBACzD,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC1B,CAAC;QACF,CAAC;QAED,OAAO,QAAQ,CAAC;IACjB,CAAC;CACD,CAAA;AA3TiB;IADhB,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC;;8CACoB;AAG5C;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,aAAa,CAAC;;iDACiB;AAG/C;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC;;gDACsB;AAG9C;IADhB,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,kBAAkB,CAAC;;sDAC4B;AAGlE;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC;;oDACmB;AAGrD;IADhB,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;;0CACS;AAjBtC,UAAU;IADtB,UAAU,EAAE;GACA,UAAU,CA6TtB"}
1
+ {"version":3,"file":"round-state.js","sourceRoot":"","sources":["../source/round-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Providers } from "@mainsail/kernel";
2
+ export declare class ServiceProvider extends Providers.ServiceProvider {
3
+ register(): Promise<void>;
4
+ dispose(): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=service-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-provider.d.ts","sourceRoot":"","sources":["../source/service-provider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAW7C,qBACa,eAAgB,SAAQ,SAAS,CAAC,eAAe;IAChD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAIrC"}
@@ -0,0 +1,42 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Identifiers } from "@mainsail/constants";
8
+ import { injectable } from "@mainsail/container";
9
+ import { Providers } from "@mainsail/kernel";
10
+ import { Lock } from "@mainsail/utils";
11
+ import { Aggregator } from "./aggregator.js";
12
+ import { Bootstrapper } from "./bootstrapper.js";
13
+ import { CommitState } from "./commit-state.js";
14
+ import { Consensus } from "./consensus.js";
15
+ import { CommitProcessor, MessageProcessor, ProposalProcessor } from "./processors/index.js";
16
+ import { RoundStateRepository } from "./round-state-repository.js";
17
+ import { Scheduler } from "./scheduler.js";
18
+ let ServiceProvider = class ServiceProvider extends Providers.ServiceProvider {
19
+ async register() {
20
+ this.app.bind(Identifiers.Consensus.Aggregator).to(Aggregator).inSingletonScope();
21
+ this.app.bind(Identifiers.Consensus.RoundStateRepository).to(RoundStateRepository).inSingletonScope();
22
+ this.app.bind(Identifiers.Consensus.Scheduler).to(Scheduler).inSingletonScope();
23
+ this.app.bind(Identifiers.Consensus.Processor.Proposal).to(ProposalProcessor).inSingletonScope();
24
+ this.app.bind(Identifiers.Consensus.Processor.Message).to(MessageProcessor).inSingletonScope();
25
+ this.app.bind(Identifiers.Consensus.Processor.Commit).to(CommitProcessor).inSingletonScope();
26
+ this.app.bind(Identifiers.Consensus.CommitLock).toConstantValue(new Lock());
27
+ this.app
28
+ .bind(Identifiers.Consensus.CommitState.Factory)
29
+ .toFactory((context) => (commit) => context.get(CommitState, { autobind: true }).configure(commit));
30
+ this.app.bind(Identifiers.Consensus.Bootstrapper).to(Bootstrapper).inSingletonScope();
31
+ this.app.bind(Identifiers.Consensus.Service).to(Consensus).inSingletonScope();
32
+ }
33
+ async dispose() {
34
+ const consensus = this.app.get(Identifiers.Consensus.Service);
35
+ await consensus.dispose();
36
+ }
37
+ };
38
+ ServiceProvider = __decorate([
39
+ injectable()
40
+ ], ServiceProvider);
41
+ export { ServiceProvider };
42
+ //# sourceMappingURL=service-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-provider.js","sourceRoot":"","sources":["../source/service-provider.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mainsail/consensus",
3
- "version": "0.0.1-evm.41",
3
+ "version": "0.0.1-evm.42",
4
4
  "description": "Consensus for the Mainsail blockchain",
5
5
  "license": "GPL-3.0-only",
6
6
  "contributors": [],
@@ -12,16 +12,16 @@
12
12
  ],
13
13
  "dependencies": {
14
14
  "dayjs": "1.11.13",
15
- "@mainsail/blockchain-utils": "0.0.1-evm.41",
16
- "@mainsail/constants": "0.0.1-evm.41",
17
- "@mainsail/kernel": "0.0.1-evm.41",
18
- "@mainsail/container": "0.0.1-evm.41",
19
- "@mainsail/utils": "0.0.1-evm.41"
15
+ "@mainsail/constants": "0.0.1-evm.42",
16
+ "@mainsail/container": "0.0.1-evm.42",
17
+ "@mainsail/blockchain-utils": "0.0.1-evm.42",
18
+ "@mainsail/utils": "0.0.1-evm.42",
19
+ "@mainsail/kernel": "0.0.1-evm.42"
20
20
  },
21
21
  "devDependencies": {
22
22
  "esmock": "2.7.1",
23
23
  "uvu": "0.5.6",
24
- "@mainsail/contracts": "0.0.1-evm.41"
24
+ "@mainsail/contracts": "0.0.1-evm.42"
25
25
  },
26
26
  "engines": {
27
27
  "node": ">=20.x"
@@ -1,13 +0,0 @@
1
- import type { Contracts } from "@mainsail/contracts";
2
- import { AbstractProcessor } from "./abstract-processor.js";
3
- export declare class PrecommitProcessor extends AbstractProcessor implements Contracts.Consensus.PrecommitProcessor {
4
- #private;
5
- private readonly serializer;
6
- private readonly validatorSet;
7
- private readonly roundStateRepo;
8
- private readonly broadcaster;
9
- private readonly workerPool;
10
- protected readonly logger: Contracts.Kernel.Logger;
11
- process(precommit: Contracts.Crypto.Precommit, broadcast?: boolean): Promise<Contracts.Consensus.ProcessorResult>;
12
- }
13
- //# sourceMappingURL=precommit-processor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"precommit-processor.d.ts","sourceRoot":"","sources":["../../source/processors/precommit-processor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAQ5D,qBACa,kBAAmB,SAAQ,iBAAkB,YAAW,SAAS,CAAC,SAAS,CAAC,kBAAkB;;IAE1G,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsC;IAGjE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAG/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4C;IAG3E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IAGzD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAG1D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;IAI9C,OAAO,CACZ,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,EACrC,SAAS,UAAO,GACd,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC;CAyE/C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"precommit-processor.js","sourceRoot":"","sources":["../../source/processors/precommit-processor.ts"],"names":[],"mappings":"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"}
@@ -1,111 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { Enums, Identifiers, Locale } from "@mainsail/constants";
11
- import { inject, injectable } from "@mainsail/container";
12
- import { assert } from "@mainsail/utils";
13
- import { AbstractProcessor } from "./abstract-processor.js";
14
- var SignatureCheckResult;
15
- (function (SignatureCheckResult) {
16
- SignatureCheckResult[SignatureCheckResult["Skip"] = 0] = "Skip";
17
- SignatureCheckResult[SignatureCheckResult["Invalid"] = 1] = "Invalid";
18
- SignatureCheckResult[SignatureCheckResult["Accepted"] = 2] = "Accepted";
19
- })(SignatureCheckResult || (SignatureCheckResult = {}));
20
- let PrevoteProcessor = class PrevoteProcessor extends AbstractProcessor {
21
- serializer;
22
- validatorSet;
23
- roundStateRepo;
24
- broadcaster;
25
- workerPool;
26
- logger;
27
- #pendingPrevotes = new Map();
28
- async process(prevote, broadcast = true) {
29
- return this.commitLock.runNonExclusive(async () => {
30
- if (!this.hasValidBlockNumberOrRound(prevote)) {
31
- return Enums.Consensus.ProcessorResult.Skipped;
32
- }
33
- if (!this.isRoundInBounds(prevote)) {
34
- return Enums.Consensus.ProcessorResult.Invalid;
35
- }
36
- const roundState = this.roundStateRepo.getRoundState(prevote.blockNumber, prevote.round);
37
- if (roundState.hasPrevote(prevote.validatorIndex)) {
38
- const existingPrevote = roundState.getPrevote(prevote.validatorIndex);
39
- assert.defined(existingPrevote);
40
- if (!existingPrevote.serialized.equals(prevote.serialized)) {
41
- this.logger.warn(`Conflicting prevotes for validator index ${prevote.validatorIndex} in block ${prevote.blockNumber.toLocaleString(Locale)}/${prevote.round}. Existing: ${existingPrevote.serialized.toString("hex")}, New: ${prevote.serialized.toString("hex")}`);
42
- }
43
- return Enums.Consensus.ProcessorResult.Skipped;
44
- }
45
- switch (await this.#signatureCheck(prevote)) {
46
- case SignatureCheckResult.Skip: {
47
- return Enums.Consensus.ProcessorResult.Skipped;
48
- }
49
- case SignatureCheckResult.Invalid: {
50
- return Enums.Consensus.ProcessorResult.Invalid;
51
- }
52
- }
53
- roundState.addPrevote(prevote);
54
- if (broadcast) {
55
- void this.broadcaster.broadcastPrevote(prevote);
56
- }
57
- void this.getConsensus().handle(roundState);
58
- return Enums.Consensus.ProcessorResult.Accepted;
59
- });
60
- }
61
- async #signatureCheck(prevote) {
62
- const serializedHex = prevote.serialized.toString("hex");
63
- if (this.#pendingPrevotes.has(serializedHex)) {
64
- return new Promise((resolve) => {
65
- this.#pendingPrevotes.get(serializedHex).push(resolve);
66
- });
67
- }
68
- else {
69
- this.#pendingPrevotes.set(serializedHex, []);
70
- }
71
- const hasValidSignature = await this.#hasValidSignature(prevote);
72
- for (const resolve of this.#pendingPrevotes.get(serializedHex)) {
73
- resolve(hasValidSignature ? SignatureCheckResult.Skip : SignatureCheckResult.Invalid);
74
- }
75
- this.#pendingPrevotes.delete(serializedHex);
76
- return hasValidSignature ? SignatureCheckResult.Accepted : SignatureCheckResult.Invalid;
77
- }
78
- async #hasValidSignature(prevote) {
79
- const worker = await this.workerPool.getWorker();
80
- return worker.consensusSignature("verify", Buffer.from(prevote.signature, "hex"), await this.serializer.serializePrevoteForSignature(prevote), Buffer.from(this.validatorSet.getValidator(prevote.validatorIndex).blsPublicKey, "hex"));
81
- }
82
- };
83
- __decorate([
84
- inject(Identifiers.Cryptography.Message.Serializer),
85
- __metadata("design:type", Object)
86
- ], PrevoteProcessor.prototype, "serializer", void 0);
87
- __decorate([
88
- inject(Identifiers.ValidatorSet.Service),
89
- __metadata("design:type", Object)
90
- ], PrevoteProcessor.prototype, "validatorSet", void 0);
91
- __decorate([
92
- inject(Identifiers.Consensus.RoundStateRepository),
93
- __metadata("design:type", Object)
94
- ], PrevoteProcessor.prototype, "roundStateRepo", void 0);
95
- __decorate([
96
- inject(Identifiers.P2P.Broadcaster),
97
- __metadata("design:type", Object)
98
- ], PrevoteProcessor.prototype, "broadcaster", void 0);
99
- __decorate([
100
- inject(Identifiers.CryptoWorker.WorkerPool),
101
- __metadata("design:type", Object)
102
- ], PrevoteProcessor.prototype, "workerPool", void 0);
103
- __decorate([
104
- inject(Identifiers.Services.Log.Service),
105
- __metadata("design:type", Object)
106
- ], PrevoteProcessor.prototype, "logger", void 0);
107
- PrevoteProcessor = __decorate([
108
- injectable()
109
- ], PrevoteProcessor);
110
- export { PrevoteProcessor };
111
- //# sourceMappingURL=prevote-processor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prevote-processor.js","sourceRoot":"","sources":["../../source/processors/prevote-processor.ts"],"names":[],"mappings":"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"}