@mainsail/blockchain-utils 0.0.1-rc.7 → 0.0.1-rc.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/distribution/fee-calculator.d.ts +1 -1
- package/distribution/fee-calculator.d.ts.map +1 -1
- package/distribution/fee-calculator.js +1 -1
- package/distribution/fee-calculator.js.map +1 -1
- package/distribution/format.d.ts +2 -2
- package/distribution/format.d.ts.map +1 -1
- package/distribution/is-block-chained.d.ts +3 -3
- package/distribution/is-block-chained.d.ts.map +1 -1
- package/distribution/is-block-chained.js.map +1 -1
- package/distribution/proposer-calculator.d.ts +2 -1
- package/distribution/proposer-calculator.d.ts.map +1 -1
- package/distribution/proposer-calculator.js +5 -2
- package/distribution/proposer-calculator.js.map +1 -1
- package/distribution/round-calculator.d.ts +2 -2
- package/distribution/round-calculator.d.ts.map +1 -1
- package/distribution/round-calculator.js +1 -1
- package/distribution/round-calculator.js.map +1 -1
- package/distribution/service-provider.js +1 -1
- package/distribution/service-provider.js.map +1 -1
- package/distribution/timestamp-calculator.d.ts +1 -1
- package/distribution/timestamp-calculator.d.ts.map +1 -1
- package/distribution/timestamp-calculator.js +3 -3
- package/distribution/timestamp-calculator.js.map +1 -1
- package/package.json +12 -8
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Contracts } from "@mainsail/contracts";
|
|
1
|
+
import type { Contracts } from "@mainsail/contracts";
|
|
2
2
|
import { BigNumber } from "@mainsail/utils";
|
|
3
3
|
export declare class FeeCalculator implements Contracts.BlockchainUtils.FeeCalculator {
|
|
4
4
|
calculate(transaction: Contracts.Crypto.Transaction): BigNumber;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fee-calculator.d.ts","sourceRoot":"","sources":["../source/fee-calculator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fee-calculator.d.ts","sourceRoot":"","sources":["../source/fee-calculator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,qBACa,aAAc,YAAW,SAAS,CAAC,eAAe,CAAC,aAAa;IACrE,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,GAAG,SAAS;IAI/D,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS;CAGtE"}
|
|
@@ -8,7 +8,7 @@ import { injectable } from "@mainsail/container";
|
|
|
8
8
|
import { BigNumber } from "@mainsail/utils";
|
|
9
9
|
let FeeCalculator = class FeeCalculator {
|
|
10
10
|
calculate(transaction) {
|
|
11
|
-
return BigNumber.make(transaction.
|
|
11
|
+
return BigNumber.make(transaction.gasPrice).times(transaction.gasLimit);
|
|
12
12
|
}
|
|
13
13
|
calculateConsumed(gasPrice, gasUsed) {
|
|
14
14
|
return BigNumber.make(gasPrice).times(gasUsed);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fee-calculator.js","sourceRoot":"","sources":["../source/fee-calculator.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"fee-calculator.js","sourceRoot":"","sources":["../source/fee-calculator.ts"],"names":[],"mappings":";;;;;;AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGrC,IAAM,aAAa,GAAnB,MAAM,aAAa;IAClB,SAAS,CAAC,WAAyC;QACzD,OAAO,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACzE,CAAC;IAEM,iBAAiB,CAAC,QAAgB,EAAE,OAAe;QACzD,OAAO,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;CACD,CAAA;AARY,aAAa;IADzB,UAAU,EAAE;GACA,aAAa,CAQzB"}
|
package/distribution/format.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Contracts } from "@mainsail/contracts";
|
|
2
|
-
import { BigNumber } from "@mainsail/utils";
|
|
1
|
+
import type { Contracts } from "@mainsail/contracts";
|
|
2
|
+
import type { BigNumber } from "@mainsail/utils";
|
|
3
3
|
export declare const formatCurrency: (configuration: Contracts.Crypto.Configuration, amount: BigNumber) => string;
|
|
4
4
|
export declare const formatNumber: (value: number) => string;
|
|
5
5
|
//# sourceMappingURL=format.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../source/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../source/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,eAAO,MAAM,cAAc,GAAI,eAAe,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,SAAS,KAAG,MASjG,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,KAAG,MAAoC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Contracts } from "@mainsail/contracts";
|
|
2
|
-
export declare const isBlockChained: (previousBlock: Contracts.Crypto.
|
|
3
|
-
export declare const getBlockNotChainedErrorMessage: (previousBlock: Contracts.Crypto.
|
|
1
|
+
import type { Contracts } from "@mainsail/contracts";
|
|
2
|
+
export declare const isBlockChained: (previousBlock: Contracts.Crypto.BlockHeader, nextBlock: Contracts.Crypto.BlockHeader) => boolean;
|
|
3
|
+
export declare const getBlockNotChainedErrorMessage: (previousBlock: Contracts.Crypto.BlockHeader, nextBlock: Contracts.Crypto.BlockHeader) => string;
|
|
4
4
|
//# sourceMappingURL=is-block-chained.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-block-chained.d.ts","sourceRoot":"","sources":["../source/is-block-chained.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"is-block-chained.d.ts","sourceRoot":"","sources":["../source/is-block-chained.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAuBrD,eAAO,MAAM,cAAc,GAC1B,eAAe,SAAS,CAAC,MAAM,CAAC,WAAW,EAC3C,WAAW,SAAS,CAAC,MAAM,CAAC,WAAW,KACrC,OAAqE,CAAC;AAEzE,eAAO,MAAM,8BAA8B,GAC1C,eAAe,SAAS,CAAC,MAAM,CAAC,WAAW,EAC3C,WAAW,SAAS,CAAC,MAAM,CAAC,WAAW,KACrC,MAuBF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-block-chained.js","sourceRoot":"","sources":["../source/is-block-chained.ts"],"names":[],"mappings":"AASA,MAAM,sBAAsB,GAAG,CAC9B,
|
|
1
|
+
{"version":3,"file":"is-block-chained.js","sourceRoot":"","sources":["../source/is-block-chained.ts"],"names":[],"mappings":"AASA,MAAM,sBAAsB,GAAG,CAC9B,aAA2C,EAC3C,SAAuC,EACjB,EAAE;IACxB,MAAM,eAAe,GAAY,SAAS,CAAC,UAAU,KAAK,aAAa,CAAC,IAAI,CAAC;IAC7E,MAAM,SAAS,GAAY,SAAS,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IAEzE,MAAM,eAAe,GAAY,aAAa,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;IAE/E,MAAM,SAAS,GAAY,eAAe,IAAI,SAAS,IAAI,eAAe,CAAC;IAE3E,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AACnE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAC7B,aAA2C,EAC3C,SAAuC,EAC7B,EAAE,CAAC,sBAAsB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC;AAEzE,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC7C,aAA2C,EAC3C,SAAuC,EAC9B,EAAE;IACX,MAAM,OAAO,GAAwB,sBAAsB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAEtF,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,aAAa,GAClB,mBAAmB,SAAS,CAAC,MAAM,WAAW,SAAS,CAAC,IAAI,IAAI;QAChE,eAAe,SAAS,CAAC,UAAU,2BAA2B;QAC9D,4BAA4B,aAAa,CAAC,MAAM,WAAW,aAAa,CAAC,IAAI,IAAI,CAAC;IAEnF,IAAI,aAAiC,CAAC;IAEtC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QAC9B,aAAa,GAAG,8BAA8B,CAAC;IAChD,CAAC;SAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAC/B,aAAa,GAAG,wBAAwB,CAAC;IAC1C,CAAC;SAAM,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QACrC,aAAa,GAAG,kDAAkD,aAAa,CAAC,SAAS,OAAO,SAAS,CAAC,SAAS,EAAE,CAAC;IACvH,CAAC;IAED,OAAO,GAAG,aAAa,KAAK,aAAa,EAAE,CAAC;AAC7C,CAAC,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { Contracts } from "@mainsail/contracts";
|
|
1
|
+
import type { Contracts } from "@mainsail/contracts";
|
|
2
2
|
export declare class ProposerCalculator implements Contracts.BlockchainUtils.ProposerCalculator {
|
|
3
3
|
private readonly configuration;
|
|
4
4
|
private readonly stateStore;
|
|
5
5
|
getValidatorIndex(round: number): number;
|
|
6
|
+
getValidatorIndexFrom(roundValidators: number, totalRound: number, round: number): number;
|
|
6
7
|
}
|
|
7
8
|
//# sourceMappingURL=proposer-calculator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proposer-calculator.d.ts","sourceRoot":"","sources":["../source/proposer-calculator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"proposer-calculator.d.ts","sourceRoot":"","sources":["../source/proposer-calculator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAKrD,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;IAKxC,qBAAqB,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;CAKhG"}
|
|
@@ -7,16 +7,19 @@ 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
11
|
import { inject, injectable } from "@mainsail/container";
|
|
11
|
-
import { Contracts, Identifiers } from "@mainsail/contracts";
|
|
12
12
|
let ProposerCalculator = class ProposerCalculator {
|
|
13
13
|
configuration;
|
|
14
14
|
stateStore;
|
|
15
15
|
getValidatorIndex(round) {
|
|
16
16
|
const { roundValidators } = this.configuration.getMilestone();
|
|
17
|
+
return this.getValidatorIndexFrom(roundValidators, this.stateStore.getTotalRound(), round);
|
|
18
|
+
}
|
|
19
|
+
getValidatorIndexFrom(roundValidators, totalRound, round) {
|
|
17
20
|
// This method will work fine on roundValidators change.
|
|
18
21
|
// We are not trying to get sequential indexes on value change, because validators are randomized every round.
|
|
19
|
-
return (
|
|
22
|
+
return (totalRound + round) % roundValidators;
|
|
20
23
|
}
|
|
21
24
|
};
|
|
22
25
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proposer-calculator.js","sourceRoot":"","sources":["../source/proposer-calculator.ts"],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"proposer-calculator.js","sourceRoot":"","sources":["../source/proposer-calculator.ts"],"names":[],"mappings":";;;;;;;;;AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGlD,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;QAC9D,OAAO,IAAI,CAAC,qBAAqB,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC;IAC5F,CAAC;IAEM,qBAAqB,CAAC,eAAuB,EAAE,UAAkB,EAAE,KAAa;QACtF,wDAAwD;QACxD,8GAA8G;QAC9G,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC,GAAG,eAAe,CAAC;IAC/C,CAAC;CACD,CAAA;AAfiB;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,CAiB9B"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Contracts } from "@mainsail/contracts";
|
|
1
|
+
import type { Contracts } from "@mainsail/contracts";
|
|
2
2
|
export interface MilestoneSearchResult {
|
|
3
3
|
found: boolean;
|
|
4
4
|
height: number;
|
|
5
|
-
data:
|
|
5
|
+
data: number | null;
|
|
6
6
|
}
|
|
7
7
|
export declare class RoundCalculator implements Contracts.BlockchainUtils.RoundCalculator {
|
|
8
8
|
private readonly configuration;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"round-calculator.d.ts","sourceRoot":"","sources":["../source/round-calculator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"round-calculator.d.ts","sourceRoot":"","sources":["../source/round-calculator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAOrD,MAAM,WAAW,qBAAqB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAED,qBACa,eAAgB,YAAW,SAAS,CAAC,eAAe,CAAC,eAAe;IAEhF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAEzD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAsBnC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS;IAyD1D,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS;IAwBpE,4CAA4C,GAClD,eAAe,SAAS,CAAC,MAAM,CAAC,aAAa,KAC3C,KAAK,CAAC,qBAAqB,CAAC,CAmB7B;CACF"}
|
|
@@ -7,8 +7,8 @@ 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
11
|
import { inject, injectable } from "@mainsail/container";
|
|
11
|
-
import { Contracts, Identifiers } from "@mainsail/contracts";
|
|
12
12
|
import { InvalidMilestoneConfigurationError } from "@mainsail/exceptions";
|
|
13
13
|
import { assert } from "@mainsail/utils";
|
|
14
14
|
let RoundCalculator = class RoundCalculator {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"round-calculator.js","sourceRoot":"","sources":["../source/round-calculator.ts"],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"round-calculator.js","sourceRoot":"","sources":["../source/round-calculator.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
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
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
+
import { Identifiers } from "@mainsail/constants";
|
|
7
8
|
import { injectable } from "@mainsail/container";
|
|
8
|
-
import { Identifiers } from "@mainsail/contracts";
|
|
9
9
|
import { Providers } from "@mainsail/kernel";
|
|
10
10
|
import { FeeCalculator } from "./fee-calculator.js";
|
|
11
11
|
import { ProposerCalculator } from "./proposer-calculator.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-provider.js","sourceRoot":"","sources":["../source/service-provider.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"service-provider.js","sourceRoot":"","sources":["../source/service-provider.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Contracts } from "@mainsail/contracts";
|
|
1
|
+
import type { Contracts } from "@mainsail/contracts";
|
|
2
2
|
export declare class TimestampCalculator implements Contracts.BlockchainUtils.TimestampCalculator {
|
|
3
3
|
private readonly configuration;
|
|
4
4
|
calculateMinimalTimestamp: (previousBlock: Contracts.Crypto.Block, round: number) => number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timestamp-calculator.d.ts","sourceRoot":"","sources":["../source/timestamp-calculator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"timestamp-calculator.d.ts","sourceRoot":"","sources":["../source/timestamp-calculator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAKrD,qBACa,mBAAoB,YAAW,SAAS,CAAC,eAAe,CAAC,mBAAmB;IAExF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAEhE,yBAAyB,GAAI,eAAe,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,MAAM,KAAG,MAAM,CAqBxF;CACF"}
|
|
@@ -7,8 +7,8 @@ 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
11
|
import { inject, injectable } from "@mainsail/container";
|
|
11
|
-
import { Contracts, Identifiers } from "@mainsail/contracts";
|
|
12
12
|
let TimestampCalculator = class TimestampCalculator {
|
|
13
13
|
configuration;
|
|
14
14
|
calculateMinimalTimestamp = (previousBlock, round) => {
|
|
@@ -16,9 +16,9 @@ let TimestampCalculator = class TimestampCalculator {
|
|
|
16
16
|
if (round > 100_000) {
|
|
17
17
|
throw new Error(`Round ${round} is too high`);
|
|
18
18
|
}
|
|
19
|
-
const milestone = this.configuration.getMilestone(previousBlock.
|
|
19
|
+
const milestone = this.configuration.getMilestone(previousBlock.number + 1);
|
|
20
20
|
const roundForMath = Math.max(0, round - 1);
|
|
21
|
-
return (previousBlock.
|
|
21
|
+
return (previousBlock.timestamp +
|
|
22
22
|
// Append block time
|
|
23
23
|
milestone.timeouts.blockTime +
|
|
24
24
|
// Round timeout without increase
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timestamp-calculator.js","sourceRoot":"","sources":["../source/timestamp-calculator.ts"],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"timestamp-calculator.js","sourceRoot":"","sources":["../source/timestamp-calculator.ts"],"names":[],"mappings":";;;;;;;;;AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGlD,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,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5E,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAE5C,OAAO,CACN,aAAa,CAAC,SAAS;YACvB,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
|
+
"version": "0.0.1-rc.9",
|
|
4
4
|
"description": "Common blockchain utils for the Mainsail blockchain.",
|
|
5
5
|
"license": "GPL-3.0-only",
|
|
6
6
|
"contributors": [],
|
|
@@ -11,17 +11,21 @@
|
|
|
11
11
|
"/distribution"
|
|
12
12
|
],
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@mainsail/
|
|
15
|
-
"@mainsail/
|
|
16
|
-
"@mainsail/
|
|
17
|
-
"@mainsail/utils": "0.0.1-rc.
|
|
18
|
-
"@mainsail/
|
|
14
|
+
"@mainsail/constants": "0.0.1-rc.9",
|
|
15
|
+
"@mainsail/exceptions": "0.0.1-rc.9",
|
|
16
|
+
"@mainsail/kernel": "0.0.1-rc.9",
|
|
17
|
+
"@mainsail/utils": "0.0.1-rc.9",
|
|
18
|
+
"@mainsail/container": "0.0.1-rc.9"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"uvu": "0.5.6"
|
|
21
|
+
"uvu": "0.5.6",
|
|
22
|
+
"@mainsail/contracts": "0.0.1-rc.9",
|
|
23
|
+
"@mainsail/crypto-config": "0.0.1-rc.9",
|
|
24
|
+
"@mainsail/test-runner": "0.0.1-rc.9",
|
|
25
|
+
"@mainsail/validation": "0.0.1-rc.9"
|
|
22
26
|
},
|
|
23
27
|
"engines": {
|
|
24
|
-
"node": ">=
|
|
28
|
+
"node": ">=24"
|
|
25
29
|
},
|
|
26
30
|
"scripts": {
|
|
27
31
|
"build": "tsc -b",
|