@mainsail/blockchain-utils 0.0.1-rc.3 → 0.0.1-rc.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,7 @@
1
- import { Providers } from "@mainsail/kernel";
2
1
  export { formatCurrency } from "./format-currency.js";
3
2
  export { getBlockNotChainedErrorMessage, isBlockChained } from "./is-block-chained.js";
4
3
  export { isMajority } from "./is-majority.js";
5
4
  export { isMinority } from "./is-minority.js";
6
- export declare class ServiceProvider extends Providers.ServiceProvider {
7
- register(): Promise<void>;
8
- }
5
+ export { percentile } from "./percentile.js";
6
+ export { ServiceProvider } from "./service-provider.js";
9
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAO7C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,qBACa,eAAgB,SAAQ,SAAS,CAAC,eAAe;IAChD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAMtC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,30 +1,7 @@
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 { injectable } from "@mainsail/container";
8
- import { Identifiers } from "@mainsail/contracts";
9
- import { Providers } from "@mainsail/kernel";
10
- import { FeeCalculator } from "./fee-calculator.js";
11
- import { ProposerCalculator } from "./proposer-calculator.js";
12
- import { RoundCalculator } from "./round-calculator.js";
13
- import { TimestampCalculator } from "./timestamp-calculator.js";
14
1
  export { formatCurrency } from "./format-currency.js";
15
2
  export { getBlockNotChainedErrorMessage, isBlockChained } from "./is-block-chained.js";
16
3
  export { isMajority } from "./is-majority.js";
17
4
  export { isMinority } from "./is-minority.js";
18
- let ServiceProvider = class ServiceProvider extends Providers.ServiceProvider {
19
- async register() {
20
- this.app.bind(Identifiers.BlockchainUtils.ProposerCalculator).to(ProposerCalculator).inSingletonScope();
21
- this.app.bind(Identifiers.BlockchainUtils.FeeCalculator).to(FeeCalculator).inSingletonScope();
22
- this.app.bind(Identifiers.BlockchainUtils.RoundCalculator).to(RoundCalculator).inSingletonScope();
23
- this.app.bind(Identifiers.BlockchainUtils.TimestampCalculator).to(TimestampCalculator).inSingletonScope();
24
- }
25
- };
26
- ServiceProvider = __decorate([
27
- injectable()
28
- ], ServiceProvider);
29
- export { ServiceProvider };
5
+ export { percentile } from "./percentile.js";
6
+ export { ServiceProvider } from "./service-provider.js";
30
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGvC,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,SAAS,CAAC,eAAe;IACtD,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACxG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC9F,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAClG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC3G,CAAC;CACD,CAAA;AAPY,eAAe;IAD3B,UAAU,EAAE;GACA,eAAe,CAO3B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,8BAA8B,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const percentile: (values: number[], p: number) => number;
2
+ //# sourceMappingURL=percentile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"percentile.d.ts","sourceRoot":"","sources":["../source/percentile.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,EAAE,EAAE,GAAG,MAAM,KAAG,MAOxD,CAAC"}
@@ -0,0 +1,8 @@
1
+ export const percentile = (values, p) => {
2
+ if (values.length === 0) {
3
+ return 0;
4
+ }
5
+ values = [...values].sort((a, b) => a - b);
6
+ return values[Math.floor((p / 100) * (values.length - 1))];
7
+ };
8
+ //# sourceMappingURL=percentile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"percentile.js","sourceRoot":"","sources":["../source/percentile.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAgB,EAAE,CAAS,EAAU,EAAE;IACjE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,CAAC;IACV,CAAC;IAED,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"proposer-calculator.d.ts","sourceRoot":"","sources":["../source/proposer-calculator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAe,MAAM,qBAAqB,CAAC;AAE7D,qBACa,kBAAmB,YAAW,SAAS,CAAC,eAAe,CAAC,kBAAkB;IAEtF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAGhE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IAE7C,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAK/C"}
1
+ {"version":3,"file":"proposer-calculator.d.ts","sourceRoot":"","sources":["../source/proposer-calculator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAe,MAAM,qBAAqB,CAAC;AAE7D,qBACa,kBAAmB,YAAW,SAAS,CAAC,eAAe,CAAC,kBAAkB;IAEtF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAGhE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IAE7C,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAO/C"}
@@ -10,9 +10,13 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  import { inject, injectable } from "@mainsail/container";
11
11
  import { Contracts, Identifiers } from "@mainsail/contracts";
12
12
  let ProposerCalculator = class ProposerCalculator {
13
+ configuration;
14
+ stateStore;
13
15
  getValidatorIndex(round) {
14
16
  const { roundValidators } = this.configuration.getMilestone();
15
- return (this.stateStore.getTotalRound() + round) % roundValidators; // This method will work fine on roundValidators change. We are not trying to get sequential indexes on value change, because validators are randomized every round.
17
+ // This method will work fine on roundValidators change.
18
+ // We are not trying to get sequential indexes on value change, because validators are randomized every round.
19
+ return (this.stateStore.getTotalRound() + round) % roundValidators;
16
20
  }
17
21
  };
18
22
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"proposer-calculator.js","sourceRoot":"","sources":["../source/proposer-calculator.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,kBAAkB,GAAxB,MAAM,kBAAkB;IAOvB,iBAAiB,CAAC,KAAa;QACrC,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QAE9D,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,GAAG,KAAK,CAAC,GAAG,eAAe,CAAC,CAAC,oKAAoK;IACzO,CAAC;CACD,CAAA;AAViB;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,aAAa,CAAC;;yDACiB;AAG/C;IADhB,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;;sDACoB;AALxC,kBAAkB;IAD9B,UAAU,EAAE;GACA,kBAAkB,CAY9B"}
1
+ {"version":3,"file":"proposer-calculator.js","sourceRoot":"","sources":["../source/proposer-calculator.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,kBAAkB,GAAxB,MAAM,kBAAkB;IAEb,aAAa,CAAkC;IAG/C,UAAU,CAAyB;IAE7C,iBAAiB,CAAC,KAAa;QACrC,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QAE9D,wDAAwD;QACxD,8GAA8G;QAC9G,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,GAAG,KAAK,CAAC,GAAG,eAAe,CAAC;IACpE,CAAC;CACD,CAAA;AAZiB;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,aAAa,CAAC;;yDACiB;AAG/C;IADhB,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;;sDACoB;AALxC,kBAAkB;IAD9B,UAAU,EAAE;GACA,kBAAkB,CAc9B"}
@@ -11,24 +11,7 @@ import { inject, injectable } from "@mainsail/container";
11
11
  import { Contracts, Exceptions, Identifiers } from "@mainsail/contracts";
12
12
  import { assert } from "@mainsail/utils";
13
13
  let RoundCalculator = class RoundCalculator {
14
- constructor() {
15
- this.getMilestonesWhichAffectActiveValidatorCount = (configuration) => {
16
- const genesisHeight = this.configuration.getGenesisHeight();
17
- const milestones = [
18
- {
19
- data: configuration.getMilestone(genesisHeight).roundValidators,
20
- found: true,
21
- height: genesisHeight,
22
- },
23
- ];
24
- let nextMilestone = configuration.getNextMilestoneWithNewKey(genesisHeight, "roundValidators");
25
- while (nextMilestone.found) {
26
- milestones.push(nextMilestone);
27
- nextMilestone = configuration.getNextMilestoneWithNewKey(nextMilestone.height, "roundValidators");
28
- }
29
- return milestones;
30
- };
31
- }
14
+ configuration;
32
15
  isNewRound(height) {
33
16
  const milestones = this.configuration.get("milestones");
34
17
  const genesisHeight = this.configuration.getGenesisHeight();
@@ -110,6 +93,22 @@ let RoundCalculator = class RoundCalculator {
110
93
  roundHeight,
111
94
  };
112
95
  }
96
+ getMilestonesWhichAffectActiveValidatorCount = (configuration) => {
97
+ const genesisHeight = this.configuration.getGenesisHeight();
98
+ const milestones = [
99
+ {
100
+ data: configuration.getMilestone(genesisHeight).roundValidators,
101
+ found: true,
102
+ height: genesisHeight,
103
+ },
104
+ ];
105
+ let nextMilestone = configuration.getNextMilestoneWithNewKey(genesisHeight, "roundValidators");
106
+ while (nextMilestone.found) {
107
+ milestones.push(nextMilestone);
108
+ nextMilestone = configuration.getNextMilestoneWithNewKey(nextMilestone.height, "roundValidators");
109
+ }
110
+ return milestones;
111
+ };
113
112
  };
114
113
  __decorate([
115
114
  inject(Identifiers.Cryptography.Configuration),
@@ -1 +1 @@
1
- {"version":3,"file":"round-calculator.js","sourceRoot":"","sources":["../source/round-calculator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"round-calculator.js","sourceRoot":"","sources":["../source/round-calculator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Providers } from "@mainsail/kernel";
2
+ export declare class ServiceProvider extends Providers.ServiceProvider {
3
+ register(): Promise<void>;
4
+ }
5
+ //# 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":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAO7C,qBACa,eAAgB,SAAQ,SAAS,CAAC,eAAe;IAChD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAMtC"}
@@ -0,0 +1,26 @@
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 { injectable } from "@mainsail/container";
8
+ import { Identifiers } from "@mainsail/contracts";
9
+ import { Providers } from "@mainsail/kernel";
10
+ import { FeeCalculator } from "./fee-calculator.js";
11
+ import { ProposerCalculator } from "./proposer-calculator.js";
12
+ import { RoundCalculator } from "./round-calculator.js";
13
+ import { TimestampCalculator } from "./timestamp-calculator.js";
14
+ let ServiceProvider = class ServiceProvider extends Providers.ServiceProvider {
15
+ async register() {
16
+ this.app.bind(Identifiers.BlockchainUtils.ProposerCalculator).to(ProposerCalculator).inSingletonScope();
17
+ this.app.bind(Identifiers.BlockchainUtils.FeeCalculator).to(FeeCalculator).inSingletonScope();
18
+ this.app.bind(Identifiers.BlockchainUtils.RoundCalculator).to(RoundCalculator).inSingletonScope();
19
+ this.app.bind(Identifiers.BlockchainUtils.TimestampCalculator).to(TimestampCalculator).inSingletonScope();
20
+ }
21
+ };
22
+ ServiceProvider = __decorate([
23
+ injectable()
24
+ ], ServiceProvider);
25
+ export { ServiceProvider };
26
+ //# sourceMappingURL=service-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-provider.js","sourceRoot":"","sources":["../source/service-provider.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGzD,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,SAAS,CAAC,eAAe;IACtD,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACxG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC9F,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAClG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC3G,CAAC;CACD,CAAA;AAPY,eAAe;IAD3B,UAAU,EAAE;GACA,eAAe,CAO3B"}
@@ -10,26 +10,25 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  import { inject, injectable } from "@mainsail/container";
11
11
  import { Contracts, Identifiers } from "@mainsail/contracts";
12
12
  let TimestampCalculator = class TimestampCalculator {
13
- constructor() {
14
- this.calculateMinimalTimestamp = (previousBlock, round) => {
15
- // Hard limit to prevent overflow
16
- if (round > 100_000) {
17
- throw new Error(`Round ${round} is too high`);
18
- }
19
- const milestone = this.configuration.getMilestone(previousBlock.data.number + 1);
20
- const roundForMath = Math.max(0, round - 1);
21
- return (previousBlock.data.timestamp +
22
- // Append block time
23
- milestone.timeouts.blockTime +
24
- // Round timeout without increase
25
- round * milestone.timeouts.stageTimeout +
26
- // Add increase for each round. Using arithmetic progression formula
27
- 0.5 *
28
- roundForMath *
29
- (2 * milestone.timeouts.stageTimeoutIncrease +
30
- (roundForMath - 1) * milestone.timeouts.stageTimeoutIncrease));
31
- };
32
- }
13
+ configuration;
14
+ calculateMinimalTimestamp = (previousBlock, round) => {
15
+ // Hard limit to prevent overflow
16
+ if (round > 100_000) {
17
+ throw new Error(`Round ${round} is too high`);
18
+ }
19
+ const milestone = this.configuration.getMilestone(previousBlock.data.number + 1);
20
+ const roundForMath = Math.max(0, round - 1);
21
+ return (previousBlock.data.timestamp +
22
+ // Append block time
23
+ milestone.timeouts.blockTime +
24
+ // Round timeout without increase
25
+ round * milestone.timeouts.stageTimeout +
26
+ // Add increase for each round. Using arithmetic progression formula
27
+ 0.5 *
28
+ roundForMath *
29
+ (2 * milestone.timeouts.stageTimeoutIncrease +
30
+ (roundForMath - 1) * milestone.timeouts.stageTimeoutIncrease));
31
+ };
33
32
  };
34
33
  __decorate([
35
34
  inject(Identifiers.Cryptography.Configuration),
@@ -1 +1 @@
1
- {"version":3,"file":"timestamp-calculator.js","sourceRoot":"","sources":["../source/timestamp-calculator.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,mBAAmB,GAAzB,MAAM,mBAAmB;IAAzB;QAIN,8BAAyB,GAAG,CAAC,aAAqC,EAAE,KAAa,EAAU,EAAE;YAC5F,iCAAiC;YACjC,IAAI,KAAK,GAAG,OAAO,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,cAAc,CAAC,CAAC;YAC/C,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACjF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAE5C,OAAO,CACN,aAAa,CAAC,IAAI,CAAC,SAAS;gBAC5B,oBAAoB;gBACpB,SAAS,CAAC,QAAQ,CAAC,SAAS;gBAC5B,iCAAiC;gBACjC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,YAAY;gBACvC,oEAAoE;gBACpE,GAAG;oBACF,YAAY;oBACZ,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,oBAAoB;wBAC3C,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAC/D,CAAC;QACH,CAAC,CAAC;IACH,CAAC;CAAA,CAAA;AAxBiB;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,aAAa,CAAC;;0DACiB;AAFpD,mBAAmB;IAD/B,UAAU,EAAE;GACA,mBAAmB,CA0B/B"}
1
+ {"version":3,"file":"timestamp-calculator.js","sourceRoot":"","sources":["../source/timestamp-calculator.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,mBAAmB,GAAzB,MAAM,mBAAmB;IAEd,aAAa,CAAkC;IAEhE,yBAAyB,GAAG,CAAC,aAAqC,EAAE,KAAa,EAAU,EAAE;QAC5F,iCAAiC;QACjC,IAAI,KAAK,GAAG,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,cAAc,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAE5C,OAAO,CACN,aAAa,CAAC,IAAI,CAAC,SAAS;YAC5B,oBAAoB;YACpB,SAAS,CAAC,QAAQ,CAAC,SAAS;YAC5B,iCAAiC;YACjC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,YAAY;YACvC,oEAAoE;YACpE,GAAG;gBACF,YAAY;gBACZ,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,oBAAoB;oBAC3C,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAC/D,CAAC;IACH,CAAC,CAAC;CACF,CAAA;AAxBiB;IADhB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,aAAa,CAAC;;0DACiB;AAFpD,mBAAmB;IAD/B,UAAU,EAAE;GACA,mBAAmB,CA0B/B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mainsail/blockchain-utils",
3
- "version": "0.0.1-rc.3",
3
+ "version": "0.0.1-rc.4",
4
4
  "description": "Common blockchain utils for the Mainsail blockchain.",
5
5
  "license": "GPL-3.0-only",
6
6
  "contributors": [],
@@ -11,10 +11,10 @@
11
11
  "/distribution"
12
12
  ],
13
13
  "dependencies": {
14
- "@mainsail/container": "0.0.1-rc.3",
15
- "@mainsail/kernel": "0.0.1-rc.3",
16
- "@mainsail/utils": "0.0.1-rc.3",
17
- "@mainsail/contracts": "0.0.1-rc.3"
14
+ "@mainsail/container": "0.0.1-rc.4",
15
+ "@mainsail/utils": "0.0.1-rc.4",
16
+ "@mainsail/contracts": "0.0.1-rc.4",
17
+ "@mainsail/kernel": "0.0.1-rc.4"
18
18
  },
19
19
  "devDependencies": {
20
20
  "uvu": "0.5.6"
@@ -23,9 +23,9 @@
23
23
  "node": ">=20.x"
24
24
  },
25
25
  "scripts": {
26
- "build": "pnpm run clean && tsc",
26
+ "build": "tsc -b",
27
27
  "build:watch": "pnpm run clean && tsc -w",
28
- "clean": "del distribution",
28
+ "clean": "del distribution && del tsconfig.tsbuildinfo",
29
29
  "release": "pnpm publish --access public",
30
30
  "test": "pnpm run uvu source .test.ts",
31
31
  "test:coverage": "c8 -r=text -r=lcov --all pnpm run test",