@mainsail/consensus 0.0.1-evm.5 → 0.0.1-evm.51

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 (65) hide show
  1. package/distribution/aggregator.d.ts +3 -4
  2. package/distribution/aggregator.d.ts.map +1 -1
  3. package/distribution/aggregator.js +11 -9
  4. package/distribution/aggregator.js.map +1 -1
  5. package/distribution/bootstrapper.d.ts +1 -1
  6. package/distribution/bootstrapper.d.ts.map +1 -1
  7. package/distribution/bootstrapper.js +15 -16
  8. package/distribution/bootstrapper.js.map +1 -1
  9. package/distribution/commit-state.d.ts +2 -3
  10. package/distribution/commit-state.d.ts.map +1 -1
  11. package/distribution/commit-state.js +21 -41
  12. package/distribution/commit-state.js.map +1 -1
  13. package/distribution/consensus.d.ts +10 -9
  14. package/distribution/consensus.d.ts.map +1 -1
  15. package/distribution/consensus.js +274 -224
  16. package/distribution/consensus.js.map +1 -1
  17. package/distribution/index.d.ts +1 -5
  18. package/distribution/index.d.ts.map +1 -1
  19. package/distribution/index.js +1 -30
  20. package/distribution/index.js.map +1 -1
  21. package/distribution/processors/abstract-processor.d.ts +5 -5
  22. package/distribution/processors/abstract-processor.d.ts.map +1 -1
  23. package/distribution/processors/abstract-processor.js +11 -7
  24. package/distribution/processors/abstract-processor.js.map +1 -1
  25. package/distribution/processors/commit-processor.d.ts +1 -2
  26. package/distribution/processors/commit-processor.d.ts.map +1 -1
  27. package/distribution/processors/commit-processor.js +29 -46
  28. package/distribution/processors/commit-processor.js.map +1 -1
  29. package/distribution/processors/index.d.ts +1 -2
  30. package/distribution/processors/index.d.ts.map +1 -1
  31. package/distribution/processors/index.js +1 -2
  32. package/distribution/processors/index.js.map +1 -1
  33. package/distribution/processors/message-processor.d.ts +13 -0
  34. package/distribution/processors/message-processor.d.ts.map +1 -0
  35. package/distribution/processors/message-processor.js +117 -0
  36. package/distribution/processors/message-processor.js.map +1 -0
  37. package/distribution/processors/proposal-processor.d.ts +3 -2
  38. package/distribution/processors/proposal-processor.d.ts.map +1 -1
  39. package/distribution/processors/proposal-processor.js +46 -41
  40. package/distribution/processors/proposal-processor.js.map +1 -1
  41. package/distribution/round-state-repository.d.ts +2 -2
  42. package/distribution/round-state-repository.d.ts.map +1 -1
  43. package/distribution/round-state-repository.js +13 -23
  44. package/distribution/round-state-repository.js.map +1 -1
  45. package/distribution/round-state.d.ts +14 -10
  46. package/distribution/round-state.d.ts.map +1 -1
  47. package/distribution/round-state.js +173 -153
  48. package/distribution/round-state.js.map +1 -1
  49. package/distribution/scheduler.d.ts +1 -1
  50. package/distribution/scheduler.d.ts.map +1 -1
  51. package/distribution/scheduler.js +49 -65
  52. package/distribution/scheduler.js.map +1 -1
  53. package/distribution/service-provider.d.ts +6 -0
  54. package/distribution/service-provider.d.ts.map +1 -0
  55. package/distribution/service-provider.js +42 -0
  56. package/distribution/service-provider.js.map +1 -0
  57. package/package.json +14 -11
  58. package/distribution/processors/precommit-processor.d.ts +0 -12
  59. package/distribution/processors/precommit-processor.d.ts.map +0 -1
  60. package/distribution/processors/precommit-processor.js +0 -77
  61. package/distribution/processors/precommit-processor.js.map +0 -1
  62. package/distribution/processors/prevote-processor.d.ts +0 -12
  63. package/distribution/processors/prevote-processor.d.ts.map +0 -1
  64. package/distribution/processors/prevote-processor.js +0 -77
  65. package/distribution/processors/prevote-processor.js.map +0 -1
@@ -1,11 +1,10 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- import { Contracts } from "@mainsail/contracts";
1
+ import type { Contracts } from "@mainsail/contracts";
3
2
  export declare class Aggregator implements Contracts.Consensus.Aggregator {
4
3
  private readonly validatorSet;
5
4
  private readonly workerPool;
6
5
  aggregate(majority: Map<number, {
7
6
  signature: string;
8
- }>, activeValidators: number): Promise<Contracts.Crypto.AggregatedSignature>;
9
- verify(signature: Contracts.Crypto.AggregatedSignature, data: Buffer, activeValidators: number): Promise<boolean>;
7
+ }>, roundValidators: number): Promise<Contracts.Crypto.AggregatedSignature>;
8
+ verify(signature: Contracts.Crypto.AggregatedSignature, data: Buffer, roundValidators: number): Promise<boolean>;
10
9
  }
11
10
  //# sourceMappingURL=aggregator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"aggregator.d.ts","sourceRoot":"","sources":["../source/aggregator.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAe,MAAM,qBAAqB,CAAC;AAG7D,qBACa,UAAW,YAAW,SAAS,CAAC,SAAS,CAAC,UAAU;IAEhE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAG/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAE7C,SAAS,CACrB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,EAC5C,gBAAgB,EAAE,MAAM,GACtB,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAuB1C,MAAM,CACX,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAC/C,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,GACtB,OAAO,CAAC,OAAO,CAAC;CAoBnB"}
1
+ {"version":3,"file":"aggregator.d.ts","sourceRoot":"","sources":["../source/aggregator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAMrD,qBACa,UAAW,YAAW,SAAS,CAAC,SAAS,CAAC,UAAU;IAEhE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAG/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAE7C,SAAS,CACrB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,EAC5C,eAAe,EAAE,MAAM,GACrB,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAuB1C,MAAM,CACX,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAC/C,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,MAAM,GACrB,OAAO,CAAC,OAAO,CAAC;CAoBnB"}
@@ -7,35 +7,37 @@ 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 { isMajority } from "@mainsail/blockchain-utils";
11
+ import { Identifiers } from "@mainsail/constants";
10
12
  import { inject, injectable } from "@mainsail/container";
11
- import { Contracts, Identifiers } from "@mainsail/contracts";
12
- import { Utils } from "@mainsail/kernel";
13
13
  let Aggregator = class Aggregator {
14
- async aggregate(majority, activeValidators) {
15
- if (!Utils.isMajority(majority.size, activeValidators)) {
14
+ validatorSet;
15
+ workerPool;
16
+ async aggregate(majority, roundValidators) {
17
+ if (!isMajority(majority.size, roundValidators)) {
16
18
  throw new Error("Failed to aggregate signatures, because the majority is not reached.");
17
19
  }
18
20
  const signatures = [];
19
- const validators = Array.from({ length: activeValidators }).fill(false);
21
+ const validators = Array.from({ length: roundValidators }).fill(false);
20
22
  for (const [key, { signature }] of majority) {
21
23
  signatures.push(Buffer.from(signature, "hex"));
22
24
  validators[key] = true;
23
25
  }
24
- const worker = await this.workerPool.getWorker();
26
+ const worker = this.workerPool.getWorker();
25
27
  const signature = await worker.consensusSignature("aggregate", signatures);
26
28
  return {
27
29
  signature,
28
30
  validators,
29
31
  };
30
32
  }
31
- async verify(signature, data, activeValidators) {
33
+ async verify(signature, data, roundValidators) {
32
34
  const validatorPublicKeys = signature.validators
33
35
  .map((v, index) => (v ? Buffer.from(this.validatorSet.getValidator(index).blsPublicKey, "hex") : undefined))
34
36
  .filter((item) => !!item);
35
- if (!Utils.isMajority(validatorPublicKeys.length, activeValidators)) {
37
+ if (!isMajority(validatorPublicKeys.length, roundValidators)) {
36
38
  return false;
37
39
  }
38
- const worker = await this.workerPool.getWorker();
40
+ const worker = this.workerPool.getWorker();
39
41
  const aggregatedPublicKey = await worker.publicKeyFactory("aggregate", validatorPublicKeys);
40
42
  return await worker.consensusSignature("verify", Buffer.from(signature.signature, "hex"), data, Buffer.from(aggregatedPublicKey, "hex"));
41
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"aggregator.js","sourceRoot":"","sources":["../source/aggregator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGlC,IAAM,UAAU,GAAhB,MAAM,UAAU;IAOf,KAAK,CAAC,SAAS,CACrB,QAA4C,EAC5C,gBAAwB;QAExB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;QACzF,CAAC;QAED,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,MAAM,UAAU,GAAc,KAAK,CAAC,IAAI,CAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE5F,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC7C,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;YAC/C,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACxB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QACjD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAE3E,OAAO;YACN,SAAS;YACT,UAAU;SACV,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CACX,SAA+C,EAC/C,IAAY,EACZ,gBAAwB;QAExB,MAAM,mBAAmB,GAAa,SAAS,CAAC,UAAU;aACxD,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aAC3G,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC;YACrE,OAAO,KAAK,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAEjD,MAAM,mBAAmB,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;QAE5F,OAAO,MAAM,MAAM,CAAC,kBAAkB,CACrC,QAAQ,EACR,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,EACvC,IAAI,EACJ,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,CACvC,CAAC;IACH,CAAC;CACD,CAAA;AAvDiB;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC;;gDACsB;AAG9C;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC;;8CACc;AAL9C,UAAU;IADtB,UAAU,EAAE;GACA,UAAU,CAyDtB"}
1
+ {"version":3,"file":"aggregator.js","sourceRoot":"","sources":["../source/aggregator.ts"],"names":[],"mappings":";;;;;;;;;AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGlD,IAAM,UAAU,GAAhB,MAAM,UAAU;IAEL,YAAY,CAAkC;IAG9C,UAAU,CAA+B;IAEnD,KAAK,CAAC,SAAS,CACrB,QAA4C,EAC5C,eAAuB;QAEvB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;QACzF,CAAC;QAED,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,MAAM,UAAU,GAAc,KAAK,CAAC,IAAI,CAAU,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE3F,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC7C,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;YAC/C,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACxB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAE3E,OAAO;YACN,SAAS;YACT,UAAU;SACV,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CACX,SAA+C,EAC/C,IAAY,EACZ,eAAuB;QAEvB,MAAM,mBAAmB,GAAa,SAAS,CAAC,UAAU;aACxD,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aAC3G,MAAM,CAAC,CAAC,IAAI,EAA+B,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAExD,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC;YAC9D,OAAO,KAAK,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAE3C,MAAM,mBAAmB,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;QAE5F,OAAO,MAAM,MAAM,CAAC,kBAAkB,CACrC,QAAQ,EACR,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,EACvC,IAAI,EACJ,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,CACvC,CAAC;IACH,CAAC;CACD,CAAA;AAvDiB;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC;;gDACsB;AAG9C;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC;;8CACc;AAL9C,UAAU;IADtB,UAAU,EAAE;GACA,UAAU,CAyDtB"}
@@ -1,4 +1,4 @@
1
- import { Contracts } from "@mainsail/contracts";
1
+ import type { Contracts } from "@mainsail/contracts";
2
2
  export declare class Bootstrapper implements Contracts.Consensus.Bootstrapper {
3
3
  private readonly logger;
4
4
  private readonly roundStateRepo;
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrapper.d.ts","sourceRoot":"","sources":["../source/bootstrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAsB,MAAM,qBAAqB,CAAC;AAEpE,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":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAS,MAAM,qBAAqB,CAAC;AAK5D,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,27 +7,26 @@ 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 { Enums, Identifiers } from "@mainsail/constants";
10
11
  import { inject, injectable } from "@mainsail/container";
11
- import { Contracts, Identifiers } from "@mainsail/contracts";
12
12
  let Bootstrapper = class Bootstrapper {
13
+ logger;
14
+ roundStateRepo;
15
+ storage;
13
16
  async run() {
14
17
  const proposals = await this.storage.getProposals();
15
- this.logger.info(`Consensus Bootstrap - Proposals: ${proposals.length}`);
18
+ this.logger.info(`Consensus Bootstrap - Proposals: ${proposals.length}`, "consensus");
16
19
  for (const proposal of proposals) {
17
- const roundState = this.roundStateRepo.getRoundState(proposal.height, proposal.round);
20
+ const roundState = this.roundStateRepo.getRoundState(proposal.blockHeader.number, proposal.round);
18
21
  roundState.addProposal(proposal);
19
22
  }
20
- const prevotes = await this.storage.getPrevotes();
21
- this.logger.info(`Consensus Bootstrap - Prevotes: ${prevotes.length}`);
22
- for (const prevote of prevotes) {
23
- const roundState = this.roundStateRepo.getRoundState(prevote.height, prevote.round);
24
- roundState.addPrevote(prevote);
25
- }
26
- const precommits = await this.storage.getPrecommits();
27
- this.logger.info(`Consensus Bootstrap - Precommits: ${precommits.length}`);
28
- for (const precommit of precommits) {
29
- const roundState = this.roundStateRepo.getRoundState(precommit.height, precommit.round);
30
- 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);
31
30
  }
32
31
  const state = (await this.storage.getState());
33
32
  if (!state) {
@@ -35,12 +34,12 @@ let Bootstrapper = class Bootstrapper {
35
34
  }
36
35
  if (state.validRound !== undefined) {
37
36
  // TODO: ensure validRound points to an existing round?
38
- const roundState = this.roundStateRepo.getRoundState(state.height, state.validRound);
37
+ const roundState = this.roundStateRepo.getRoundState(state.blockNumber, state.validRound);
39
38
  state.validValue = roundState;
40
39
  }
41
40
  if (state.lockedRound !== undefined) {
42
41
  // TODO: ensure lockedRound points to an existing round?
43
- const roundState = this.roundStateRepo.getRoundState(state.height, state.lockedRound);
42
+ const roundState = this.roundStateRepo.getRoundState(state.blockNumber, state.lockedRound);
44
43
  state.lockedValue = roundState;
45
44
  }
46
45
  return state;
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrapper.js","sourceRoot":"","sources":["../source/bootstrapper.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAS,MAAM,qBAAqB,CAAC;AAG7D,IAAM,YAAY,GAAlB,MAAM,YAAY;IAUjB,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,CAAC,CAAC;QAEzE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YACtF,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAElD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACvE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACpF,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAEtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3E,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YACxF,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACpC,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,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YACrF,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,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YACtF,KAAK,CAAC,WAAW,GAAG,UAAU,CAAC;QAChC,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;CACD,CAAA;AArDiB;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,CAuDxB"}
1
+ {"version":3,"file":"bootstrapper.js","sourceRoot":"","sources":["../source/bootstrapper.ts"],"names":[],"mappings":";;;;;;;;;AAEA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGlD,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"}
@@ -1,10 +1,9 @@
1
- import { Contracts } from "@mainsail/contracts";
1
+ import type { Contracts } from "@mainsail/contracts";
2
2
  export declare class CommitState implements Contracts.Processor.ProcessableUnit {
3
3
  #private;
4
4
  private readonly validatorSet;
5
- get height(): number;
5
+ get blockNumber(): number;
6
6
  get round(): number;
7
- get persist(): boolean;
8
7
  get validators(): string[];
9
8
  configure(commit: Contracts.Crypto.Commit): CommitState;
10
9
  getBlock(): Contracts.Crypto.Block;
@@ -1 +1 @@
1
- {"version":3,"file":"commit-state.d.ts","sourceRoot":"","sources":["../source/commit-state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAe,MAAM,qBAAqB,CAAC;AAE7D,qBACa,WAAY,YAAW,SAAS,CAAC,SAAS,CAAC,eAAe;;IAEtE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAO/D,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED,IAAW,UAAU,IAAI,MAAM,EAAE,CAEhC;IAEM,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,WAAW;IAYvD,QAAQ,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK;IAIlC,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;IAI/D,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;CAG1D"}
1
+ {"version":3,"file":"commit-state.d.ts","sourceRoot":"","sources":["../source/commit-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAKrD,qBACa,WAAY,YAAW,SAAS,CAAC,SAAS,CAAC,eAAe;;IAEtE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAO/D,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,UAAU,IAAI,MAAM,EAAE,CAEhC;IAEM,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,WAAW;IAYvD,QAAQ,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK;IAIlC,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;IAI/D,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;CAG1D"}
@@ -7,77 +7,57 @@ 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
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
11
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
12
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
13
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
14
- };
15
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
16
- if (kind === "m") throw new TypeError("Private method is not writable");
17
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
18
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
19
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
20
- };
21
- var _CommitState_commit, _CommitState_processorResult, _CommitState_validators, _CommitState_accountUpdates;
10
+ import { Identifiers } from "@mainsail/constants";
22
11
  import { inject, injectable } from "@mainsail/container";
23
- import { Contracts, Identifiers } from "@mainsail/contracts";
24
12
  let CommitState = class CommitState {
25
- constructor() {
26
- _CommitState_commit.set(this, void 0);
27
- _CommitState_processorResult.set(this, void 0);
28
- _CommitState_validators.set(this, new Map());
29
- _CommitState_accountUpdates.set(this, []);
30
- }
31
- get height() {
32
- return __classPrivateFieldGet(this, _CommitState_commit, "f").block.data.height;
13
+ validatorSet;
14
+ #commit;
15
+ #processorResult;
16
+ #validators = new Map();
17
+ #accountUpdates = [];
18
+ get blockNumber() {
19
+ return this.#commit.block.number;
33
20
  }
34
21
  get round() {
35
- return __classPrivateFieldGet(this, _CommitState_commit, "f").proof.round;
36
- }
37
- get persist() {
38
- return false; // Block downloader will store block in database, to improve performance
22
+ return this.#commit.proof.round;
39
23
  }
40
24
  get validators() {
41
- return [...__classPrivateFieldGet(this, _CommitState_validators, "f").keys()];
25
+ return [...this.#validators.keys()];
42
26
  }
43
27
  configure(commit) {
44
- __classPrivateFieldSet(this, _CommitState_commit, commit, "f");
45
- const validators = this.validatorSet.getActiveValidators();
28
+ this.#commit = commit;
29
+ const validators = this.validatorSet.getRoundValidators();
46
30
  for (const validator of validators) {
47
31
  const consensusPublicKey = validator.blsPublicKey;
48
- __classPrivateFieldGet(this, _CommitState_validators, "f").set(consensusPublicKey, validator);
32
+ this.#validators.set(consensusPublicKey, validator);
49
33
  }
50
34
  return this;
51
35
  }
52
36
  getBlock() {
53
- return __classPrivateFieldGet(this, _CommitState_commit, "f").block;
37
+ return this.#commit.block;
54
38
  }
55
39
  setProcessorResult(processorResult) {
56
- __classPrivateFieldSet(this, _CommitState_processorResult, processorResult, "f");
40
+ this.#processorResult = processorResult;
57
41
  }
58
42
  hasProcessorResult() {
59
- return __classPrivateFieldGet(this, _CommitState_processorResult, "f") !== undefined;
43
+ return this.#processorResult !== undefined;
60
44
  }
61
45
  getProcessorResult() {
62
- if (__classPrivateFieldGet(this, _CommitState_processorResult, "f") == undefined) {
46
+ if (this.#processorResult == undefined) {
63
47
  throw new Error("Processor result is undefined.");
64
48
  }
65
- return __classPrivateFieldGet(this, _CommitState_processorResult, "f");
49
+ return this.#processorResult;
66
50
  }
67
51
  getAccountUpdates() {
68
- return __classPrivateFieldGet(this, _CommitState_accountUpdates, "f");
52
+ return this.#accountUpdates;
69
53
  }
70
54
  setAccountUpdates(accounts) {
71
- __classPrivateFieldSet(this, _CommitState_accountUpdates, accounts, "f");
55
+ this.#accountUpdates = accounts;
72
56
  }
73
57
  async getCommit() {
74
- return __classPrivateFieldGet(this, _CommitState_commit, "f");
58
+ return this.#commit;
75
59
  }
76
60
  };
77
- _CommitState_commit = new WeakMap();
78
- _CommitState_processorResult = new WeakMap();
79
- _CommitState_validators = new WeakMap();
80
- _CommitState_accountUpdates = new WeakMap();
81
61
  __decorate([
82
62
  inject(Identifiers.ValidatorSet.Service),
83
63
  __metadata("design:type", Object)
@@ -1 +1 @@
1
- {"version":3,"file":"commit-state.js","sourceRoot":"","sources":["../source/commit-state.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGtD,IAAM,WAAW,GAAjB,MAAM,WAAW;IAAjB;QAIN,sCAAkC;QAClC,+CAA4D;QAC5D,kCAAc,IAAI,GAAG,EAA2C,EAAC;QACjE,sCAAsD,EAAE,EAAC;IA6D1D,CAAC;IA3DA,IAAW,MAAM;QAChB,OAAO,uBAAA,IAAI,2BAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;IACvC,CAAC;IAED,IAAW,KAAK;QACf,OAAO,uBAAA,IAAI,2BAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;IACjC,CAAC;IAED,IAAW,OAAO;QACjB,OAAO,KAAK,CAAC,CAAC,wEAAwE;IACvF,CAAC;IAED,IAAW,UAAU;QACpB,OAAO,CAAC,GAAG,uBAAA,IAAI,+BAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IAEM,SAAS,CAAC,MAA+B;QAC/C,uBAAA,IAAI,uBAAW,MAAM,MAAA,CAAC;QAEtB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;QAC3D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACpC,MAAM,kBAAkB,GAAG,SAAS,CAAC,YAAY,CAAC;YAClD,uBAAA,IAAI,+BAAY,CAAC,GAAG,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,QAAQ;QACd,OAAO,uBAAA,IAAI,2BAAQ,CAAC,KAAK,CAAC;IAC3B,CAAC;IAEM,kBAAkB,CAAC,eAAyD;QAClF,uBAAA,IAAI,gCAAoB,eAAe,MAAA,CAAC;IACzC,CAAC;IAEM,kBAAkB;QACxB,OAAO,uBAAA,IAAI,oCAAiB,KAAK,SAAS,CAAC;IAC5C,CAAC;IAEM,kBAAkB;QACxB,IAAI,uBAAA,IAAI,oCAAiB,IAAI,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,uBAAA,IAAI,oCAAiB,CAAC;IAC9B,CAAC;IAEM,iBAAiB;QACvB,OAAO,uBAAA,IAAI,mCAAgB,CAAC;IAC7B,CAAC;IAEM,iBAAiB,CAAC,QAA4C;QACpE,uBAAA,IAAI,+BAAmB,QAAQ,MAAA,CAAC;IACjC,CAAC;IAEM,KAAK,CAAC,SAAS;QACrB,OAAO,uBAAA,IAAI,2BAAQ,CAAC;IACrB,CAAC;CACD,CAAA;;;;;AAlEiB;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC;;iDACsB;AAFnD,WAAW;IADvB,UAAU,EAAE;GACA,WAAW,CAoEvB"}
1
+ {"version":3,"file":"commit-state.js","sourceRoot":"","sources":["../source/commit-state.ts"],"names":[],"mappings":";;;;;;;;;AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGlD,IAAM,WAAW,GAAjB,MAAM,WAAW;IAEN,YAAY,CAAkC;IAE/D,OAAO,CAA2B;IAClC,gBAAgB,CAA4C;IAC5D,WAAW,GAAG,IAAI,GAAG,EAA2C,CAAC;IACjE,eAAe,GAAuC,EAAE,CAAC;IAEzD,IAAW,WAAW;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;IAClC,CAAC;IAED,IAAW,KAAK;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;IACjC,CAAC;IAED,IAAW,UAAU;QACpB,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IAEM,SAAS,CAAC,MAA+B;QAC/C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAEtB,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;QACrD,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,QAAQ;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAC3B,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,IAAI,SAAS,EAAE,CAAC;YACxC,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,KAAK,CAAC,SAAS;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;CACD,CAAA;AA9DiB;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC;;iDACsB;AAFnD,WAAW;IADvB,UAAU,EAAE;GACA,WAAW,CAgEvB"}
@@ -1,4 +1,4 @@
1
- import { Contracts } from "@mainsail/contracts";
1
+ import type { Contracts } from "@mainsail/contracts";
2
2
  export declare class Consensus implements Contracts.Consensus.Service {
3
3
  #private;
4
4
  private readonly app;
@@ -7,16 +7,17 @@ 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;
15
14
  private readonly commitLock;
16
15
  private readonly validatorSet;
16
+ private readonly blockForger;
17
17
  private readonly eventDispatcher;
18
18
  private readonly logger;
19
- getHeight(): number;
19
+ private readonly statisticService;
20
+ getBlockNumber(): number;
20
21
  getRound(): number;
21
22
  setRound(round: number): void;
22
23
  getStep(): Contracts.Consensus.Step;
@@ -24,7 +25,7 @@ export declare class Consensus implements Contracts.Consensus.Service {
24
25
  getLockedRound(): number | undefined;
25
26
  getValidRound(): number | undefined;
26
27
  setValidRound(round: Contracts.Consensus.RoundState): void;
27
- setProposal(proposalPromise: Promise<Contracts.Crypto.Proposal>): void;
28
+ setProposal(proposalPromise: Promise<Contracts.Crypto.Proposal>, block: Contracts.Crypto.Block): void;
28
29
  getState(): Contracts.Consensus.State;
29
30
  run(): Promise<void>;
30
31
  dispose(): Promise<void>;
@@ -38,11 +39,11 @@ export declare class Consensus implements Contracts.Consensus.Service {
38
39
  protected onMajorityPrevoteAny(roundState: Contracts.Consensus.RoundState): Promise<void>;
39
40
  protected onMajorityPrevoteNull(roundState: Contracts.Consensus.RoundState): Promise<void>;
40
41
  protected onMajorityPrecommitAny(roundState: Contracts.Consensus.RoundState): Promise<void>;
41
- protected onMajorityPrecommit(roundState: Contracts.Processor.ProcessableUnit): Promise<void>;
42
+ protected onMajorityPrecommit(processState: Contracts.Processor.ProcessableUnit, isRoundState?: boolean): Promise<void>;
42
43
  protected onMinorityWithHigherRound(roundState: Contracts.Processor.ProcessableUnit): Promise<void>;
43
- onTimeoutPropose(height: number, round: number): Promise<void>;
44
- onTimeoutPrevote(height: number, round: number): Promise<void>;
45
- onTimeoutPrecommit(height: number, round: number): Promise<void>;
44
+ onTimeoutPropose(blockNumber: number, round: number): Promise<void>;
45
+ onTimeoutPrevote(blockNumber: number, round: number): Promise<void>;
46
+ onTimeoutPrecommit(blockNumber: number, round: number): Promise<void>;
46
47
  propose(roundState: Contracts.Consensus.RoundState): Promise<void>;
47
48
  prevote(value?: string): Promise<void>;
48
49
  precommit(value?: string): Promise<void>;
@@ -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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"}