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

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
@@ -7,37 +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
- 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 _ProposalProcessor_instances, _ProposalProcessor_hasValidProposer, _ProposalProcessor_hasValidSignature;
10
+ import { Enums, Identifiers } from "@mainsail/constants";
16
11
  import { inject, injectable, tagged } from "@mainsail/container";
17
- import { Contracts, Identifiers } from "@mainsail/contracts";
18
12
  import { AbstractProcessor } from "./abstract-processor.js";
19
13
  let ProposalProcessor = class ProposalProcessor extends AbstractProcessor {
20
- constructor() {
21
- super(...arguments);
22
- _ProposalProcessor_instances.add(this);
23
- }
14
+ proposalSerializer;
15
+ messageSerializer;
16
+ consensusSignature;
17
+ configuration;
18
+ aggregator;
19
+ proposerCalculator;
20
+ validatorSet;
21
+ roundStateRepo;
22
+ broadcaster;
23
+ logger;
24
24
  async process(proposal, broadcast = true) {
25
25
  return this.commitLock.runNonExclusive(async () => {
26
- if (!this.hasValidHeightOrRound(proposal)) {
27
- return Contracts.Consensus.ProcessorResult.Skipped;
26
+ if (!this.hasValidBlockNumberOrRound({ blockNumber: proposal.blockHeader.number, round: proposal.round })) {
27
+ return Enums.Consensus.ProcessorResult.Skipped;
28
28
  }
29
29
  if (!this.isRoundInBounds(proposal)) {
30
- return Contracts.Consensus.ProcessorResult.Invalid;
30
+ return Enums.Consensus.ProcessorResult.Invalid;
31
31
  }
32
- if (!__classPrivateFieldGet(this, _ProposalProcessor_instances, "m", _ProposalProcessor_hasValidProposer).call(this, proposal)) {
33
- return Contracts.Consensus.ProcessorResult.Invalid;
32
+ if (!this.#hasValidProposer(proposal)) {
33
+ return Enums.Consensus.ProcessorResult.Invalid;
34
34
  }
35
- if (!(await __classPrivateFieldGet(this, _ProposalProcessor_instances, "m", _ProposalProcessor_hasValidSignature).call(this, proposal))) {
36
- return Contracts.Consensus.ProcessorResult.Invalid;
35
+ if (!(await this.#hasValidSignature(proposal))) {
36
+ return Enums.Consensus.ProcessorResult.Invalid;
37
37
  }
38
- const roundState = this.roundStateRepo.getRoundState(proposal.height, proposal.round);
38
+ const roundState = this.roundStateRepo.getRoundState(proposal.blockHeader.number, proposal.round);
39
39
  if (roundState.hasProposal()) {
40
- return Contracts.Consensus.ProcessorResult.Skipped;
40
+ return Enums.Consensus.ProcessorResult.Skipped;
41
41
  }
42
42
  roundState.addProposal(proposal);
43
43
  if (broadcast) {
@@ -47,7 +47,7 @@ let ProposalProcessor = class ProposalProcessor extends AbstractProcessor {
47
47
  setTimeout(() => {
48
48
  void this.getConsensus().handle(roundState);
49
49
  }, 0);
50
- return Contracts.Consensus.ProcessorResult.Accepted;
50
+ return Enums.Consensus.ProcessorResult.Accepted;
51
51
  });
52
52
  }
53
53
  async hasValidLockProof(proposal) {
@@ -55,35 +55,40 @@ let ProposalProcessor = class ProposalProcessor extends AbstractProcessor {
55
55
  return true;
56
56
  }
57
57
  if (proposal.validRound >= proposal.round) {
58
- this.logger.debug(`Received proposal ${proposal.height}/${proposal.round} has validRound ${proposal.validRound} >= round ${proposal.round}`);
58
+ this.logger.debug(`Received proposal ${proposal.blockHeader.number}/${proposal.round} has validRound ${proposal.validRound} >= round ${proposal.round}`, "consensus");
59
59
  return false;
60
60
  }
61
- const lockProof = proposal.getData().lockProof;
62
- if (!lockProof) {
63
- this.logger.debug(`Received proposal ${proposal.height}/${proposal.round} with missing lock proof`);
61
+ if (!proposal.lockProof) {
62
+ this.logger.debug(`Received proposal ${proposal.blockHeader.number}/${proposal.round} with missing lock proof`, "consensus");
64
63
  return true;
65
64
  }
66
- const data = await this.messageSerializer.serializePrevoteForSignature({
67
- blockId: proposal.getData().block.header.id,
68
- height: proposal.height,
65
+ const data = await this.messageSerializer.serializeMessageForSignature({
66
+ blockHash: proposal.blockHeader.hash,
67
+ blockNumber: proposal.blockHeader.number,
69
68
  round: proposal.validRound,
70
- type: Contracts.Crypto.MessageType.Prevote,
69
+ type: Enums.Crypto.MessageType.Prevote,
70
+ }, {
71
+ genesisBlockHash: this.stateStore.getGenesisCommit().block.hash,
72
+ previousBlockHash: this.stateStore.getLastBlock().hash,
71
73
  });
72
- const { activeValidators } = this.configuration.getMilestone(proposal.height);
73
- const verified = await this.aggregator.verify(lockProof, data, activeValidators);
74
+ const { roundValidators } = this.configuration.getMilestone(proposal.blockHeader.number);
75
+ const verified = await this.aggregator.verify(proposal.lockProof, data, roundValidators);
74
76
  if (!verified) {
75
- this.logger.debug(`Received proposal ${proposal.height}/${proposal.round} with invalid lock proof`);
77
+ this.logger.debug(`Received proposal ${proposal.blockHeader.number}/${proposal.round} with invalid lock proof`, "consensus");
76
78
  }
77
79
  return verified;
78
80
  }
81
+ #hasValidProposer(proposal) {
82
+ return proposal.validatorIndex === this.proposerCalculator.getValidatorIndex(proposal.round);
83
+ }
84
+ async #hasValidSignature(proposal) {
85
+ return this.consensusSignature.verify(Buffer.from(proposal.signature, "hex"), await this.proposalSerializer.serializeProposalUnsigned(proposal.toSerializableData()), Buffer.from(this.validatorSet.getValidator(proposal.validatorIndex).blsPublicKey, "hex"));
86
+ }
79
87
  };
80
- _ProposalProcessor_instances = new WeakSet();
81
- _ProposalProcessor_hasValidProposer = function _ProposalProcessor_hasValidProposer(proposal) {
82
- return proposal.validatorIndex === this.proposerSelector.getValidatorIndex(proposal.round);
83
- };
84
- _ProposalProcessor_hasValidSignature = async function _ProposalProcessor_hasValidSignature(proposal) {
85
- 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"));
86
- };
88
+ __decorate([
89
+ inject(Identifiers.Cryptography.Proposal.Serializer),
90
+ __metadata("design:type", Object)
91
+ ], ProposalProcessor.prototype, "proposalSerializer", void 0);
87
92
  __decorate([
88
93
  inject(Identifiers.Cryptography.Message.Serializer),
89
94
  __metadata("design:type", Object)
@@ -102,9 +107,9 @@ __decorate([
102
107
  __metadata("design:type", Object)
103
108
  ], ProposalProcessor.prototype, "aggregator", void 0);
104
109
  __decorate([
105
- inject(Identifiers.Proposer.Selector),
110
+ inject(Identifiers.BlockchainUtils.ProposerCalculator),
106
111
  __metadata("design:type", Object)
107
- ], ProposalProcessor.prototype, "proposerSelector", void 0);
112
+ ], ProposalProcessor.prototype, "proposerCalculator", void 0);
108
113
  __decorate([
109
114
  inject(Identifiers.ValidatorSet.Service),
110
115
  __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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"}
@@ -1,8 +1,8 @@
1
- import { Contracts } from "@mainsail/contracts";
1
+ import type { Contracts } from "@mainsail/contracts";
2
2
  export declare class RoundStateRepository implements Contracts.Consensus.RoundStateRepository {
3
3
  #private;
4
4
  private readonly app;
5
- getRoundState(height: number, round: number): Contracts.Consensus.RoundState;
5
+ getRoundState(blockNumber: number, round: number): Contracts.Consensus.RoundState;
6
6
  getRoundStates(): Contracts.Consensus.RoundState[];
7
7
  clear(): void;
8
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"round-state-repository.d.ts","sourceRoot":"","sources":["../source/round-state-repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAe,MAAM,qBAAqB,CAAC;AAG7D,qBACa,oBAAqB,YAAW,SAAS,CAAC,SAAS,CAAC,oBAAoB;;IAEpF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgC;IAI7C,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,UAAU;IAU5E,cAAc,IAAI,SAAS,CAAC,SAAS,CAAC,UAAU,EAAE;IAIlD,KAAK,IAAI,IAAI;CAOpB"}
1
+ {"version":3,"file":"round-state-repository.d.ts","sourceRoot":"","sources":["../source/round-state-repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAMrD,qBACa,oBAAqB,YAAW,SAAS,CAAC,SAAS,CAAC,oBAAoB;;IAEpF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgC;IAI7C,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,UAAU;IAUjF,cAAc,IAAI,SAAS,CAAC,SAAS,CAAC,UAAU,EAAE;IAIlD,KAAK,IAAI,IAAI;CAOpB"}
@@ -7,38 +7,28 @@ 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 _RoundStateRepository_instances, _RoundStateRepository_roundStates, _RoundStateRepository_createRoundState;
10
+ import { Identifiers } from "@mainsail/constants";
16
11
  import { inject, injectable } from "@mainsail/container";
17
- import { Contracts, Identifiers } from "@mainsail/contracts";
18
12
  import { RoundState } from "./round-state.js";
19
13
  let RoundStateRepository = class RoundStateRepository {
20
- constructor() {
21
- _RoundStateRepository_instances.add(this);
22
- _RoundStateRepository_roundStates.set(this, new Map());
23
- }
24
- getRoundState(height, round) {
25
- const key = `${height}-${round}`;
26
- if (!__classPrivateFieldGet(this, _RoundStateRepository_roundStates, "f").has(key)) {
27
- __classPrivateFieldGet(this, _RoundStateRepository_roundStates, "f").set(key, __classPrivateFieldGet(this, _RoundStateRepository_instances, "m", _RoundStateRepository_createRoundState).call(this, height, round));
14
+ app;
15
+ #roundStates = new Map();
16
+ getRoundState(blockNumber, round) {
17
+ const key = `${blockNumber}-${round}`;
18
+ if (!this.#roundStates.has(key)) {
19
+ this.#roundStates.set(key, this.#createRoundState(blockNumber, round));
28
20
  }
29
- return __classPrivateFieldGet(this, _RoundStateRepository_roundStates, "f").get(key);
21
+ return this.#roundStates.get(key);
30
22
  }
31
23
  getRoundStates() {
32
- return [...__classPrivateFieldGet(this, _RoundStateRepository_roundStates, "f").values()];
24
+ return [...this.#roundStates.values()];
33
25
  }
34
26
  clear() {
35
- __classPrivateFieldGet(this, _RoundStateRepository_roundStates, "f").clear();
27
+ this.#roundStates.clear();
28
+ }
29
+ #createRoundState(blockNumber, round) {
30
+ return this.app.resolve(RoundState).configure(blockNumber, round);
36
31
  }
37
- };
38
- _RoundStateRepository_roundStates = new WeakMap();
39
- _RoundStateRepository_instances = new WeakSet();
40
- _RoundStateRepository_createRoundState = function _RoundStateRepository_createRoundState(height, round) {
41
- return this.app.resolve(RoundState).configure(height, round);
42
32
  };
43
33
  __decorate([
44
34
  inject(Identifiers.Application.Instance),
@@ -1 +1 @@
1
- {"version":3,"file":"round-state-repository.js","sourceRoot":"","sources":["../source/round-state-repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEvC,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAA1B;;QAIN,4CAAe,IAAI,GAAG,EAA0C,EAAC;IAuBlE,CAAC;IArBO,aAAa,CAAC,MAAc,EAAE,KAAa;QACjD,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC;QAEjC,IAAI,CAAC,uBAAA,IAAI,yCAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,uBAAA,IAAI,yCAAa,CAAC,GAAG,CAAC,GAAG,EAAE,uBAAA,IAAI,+EAAkB,MAAtB,IAAI,EAAmB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,uBAAA,IAAI,yCAAa,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;IACpC,CAAC;IAEM,cAAc;QACpB,OAAO,CAAC,GAAG,uBAAA,IAAI,yCAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAEM,KAAK;QACX,uBAAA,IAAI,yCAAa,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CAKD,CAAA;;;yFAHkB,MAAc,EAAE,KAAa;IAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC9D,CAAC;AAxBgB;IADhB,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;;iDACW;AAFxC,oBAAoB;IADhC,UAAU,EAAE;GACA,oBAAoB,CA2BhC"}
1
+ {"version":3,"file":"round-state-repository.js","sourceRoot":"","sources":["../source/round-state-repository.ts"],"names":[],"mappings":";;;;;;;;;AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEvC,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAEf,GAAG,CAAgC;IAEpD,YAAY,GAAG,IAAI,GAAG,EAA0C,CAAC;IAE1D,aAAa,CAAC,WAAmB,EAAE,KAAa;QACtD,MAAM,GAAG,GAAG,GAAG,WAAW,IAAI,KAAK,EAAE,CAAC;QAEtC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;IACpC,CAAC;IAEM,cAAc;QACpB,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAEM,KAAK;QACX,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,iBAAiB,CAAC,WAAmB,EAAE,KAAa;QACnD,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;CACD,CAAA;AAzBiB;IADhB,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;;iDACW;AAFxC,oBAAoB;IADhC,UAAU,EAAE;GACA,oBAAoB,CA2BhC"}
@@ -1,18 +1,18 @@
1
- import { Contracts } from "@mainsail/contracts";
1
+ import type { Contracts } from "@mainsail/contracts";
2
2
  export declare class RoundState implements Contracts.Consensus.RoundState {
3
3
  #private;
4
4
  private readonly aggregator;
5
5
  private readonly configuration;
6
6
  private readonly validatorSet;
7
- private readonly proposerSelector;
7
+ private readonly proposerCalculator;
8
8
  private readonly commitSerializer;
9
9
  private readonly logger;
10
- get height(): number;
10
+ get blockNumber(): number;
11
11
  get round(): number;
12
12
  get persist(): boolean;
13
13
  get validators(): string[];
14
14
  get proposer(): Contracts.State.ValidatorWallet;
15
- configure(height: number, round: number): RoundState;
15
+ configure(blockNumber: number, round: number): RoundState;
16
16
  getValidator(consensusPublicKey: string): Contracts.State.ValidatorWallet;
17
17
  hasProposal(): boolean;
18
18
  addProposal(proposal: Contracts.Crypto.Proposal): void;
@@ -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":"AACA,OAAO,EAAE,SAAS,EAAe,MAAM,qBAAqB,CAAC;AAG7D,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,gBAAgB,CAA+B;IAGhE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqC;IAGtE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAkBlD,IAAW,MAAM,IAAI,MAAM,CAE1B;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,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU;IAmBpD,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;CA0D5B"}
1
+ {"version":3,"file":"round-state.d.ts","sourceRoot":"","sources":["../source/round-state.ts"],"names":[],"mappings":"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"}