@mainsail/blockchain-utils 0.0.1-evm.30 → 0.0.1-evm.32

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"}
@@ -14,7 +14,9 @@ let ProposerCalculator = class ProposerCalculator {
14
14
  stateStore;
15
15
  getValidatorIndex(round) {
16
16
  const { roundValidators } = this.configuration.getMilestone();
17
- 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;
18
20
  }
19
21
  };
20
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;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,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"}
@@ -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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mainsail/blockchain-utils",
3
- "version": "0.0.1-evm.30",
3
+ "version": "0.0.1-evm.32",
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-evm.30",
15
- "@mainsail/kernel": "0.0.1-evm.30",
16
- "@mainsail/utils": "0.0.1-evm.30",
17
- "@mainsail/contracts": "0.0.1-evm.30"
14
+ "@mainsail/utils": "0.0.1-evm.32",
15
+ "@mainsail/kernel": "0.0.1-evm.32",
16
+ "@mainsail/container": "0.0.1-evm.32",
17
+ "@mainsail/contracts": "0.0.1-evm.32"
18
18
  },
19
19
  "devDependencies": {
20
20
  "uvu": "0.5.6"