@lodestar/types 1.36.0-dev.6d67a79656 → 1.36.0-dev.6f46a8bd20

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.
@@ -11,6 +11,17 @@ export declare const Bytes96: ByteVectorType;
11
11
  export declare const Uint8: UintNumberType;
12
12
  export declare const Uint16: UintNumberType;
13
13
  export declare const Uint32: UintNumberType;
14
+ /**
15
+ * A JS `number` is an IEEE-754 double which has 53 bits integer precision. This implies that it can store
16
+ * a value up to 2^53-1 without losing any precision (`Number.MAX_SAFE_INTEGER` represents that exact limit).
17
+ * So it can't store a 64 bit integer with precision in the higher bits.
18
+ *
19
+ * However, JS `bigint` arithmetics is ~100x slower than `number`.
20
+ * Therefor, this type uses `number` for 64 bits values, for use in well-analyzed cases where
21
+ * the value is known to never cross the `Number.MAX_SAFE_INTEGER` limit.
22
+ *
23
+ * Caution and reasoned analysis are always required before using this type as the consequence of misuse is a consensus split.
24
+ */
14
25
  export declare const UintNum64: UintNumberType;
15
26
  export declare const UintNumInf64: UintNumberType;
16
27
  export declare const UintBn64: UintBigintType;
@@ -1 +1 @@
1
- {"version":3,"file":"sszTypes.d.ts","sourceRoot":"","sources":["../../src/primitive/sszTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAC,oBAAoB,EAAC,MAAM,8BAA8B,CAAC;AAGlE,eAAO,MAAM,OAAO,aAAoB,CAAC;AACzC,eAAO,MAAM,IAAI,gBAAwB,CAAC;AAC1C,eAAO,MAAM,MAAM,gBAAwB,CAAC;AAC5C,eAAO,MAAM,MAAM,gBAAwB,CAAC;AAC5C,eAAO,MAAM,OAAO,gBAAyB,CAAC;AAC9C,eAAO,MAAM,OAAO,gBAAyB,CAAC;AAC9C,eAAO,MAAM,OAAO,gBAAyB,CAAC;AAC9C,eAAO,MAAM,OAAO,gBAAyB,CAAC;AAC9C,eAAO,MAAM,KAAK,gBAAwB,CAAC;AAC3C,eAAO,MAAM,MAAM,gBAAwB,CAAC;AAC5C,eAAO,MAAM,MAAM,gBAAwB,CAAC;AAC5C,eAAO,MAAM,SAAS,gBAAwB,CAAC;AAC/C,eAAO,MAAM,YAAY,gBAA8C,CAAC;AACxE,eAAO,MAAM,QAAQ,gBAAwB,CAAC;AAC9C,eAAO,MAAM,SAAS,gBAAyB,CAAC;AAChD,eAAO,MAAM,SAAS,gBAAyB,CAAC;AAIhD;;;GAGG;AACH,eAAO,MAAM,IAAI,gBAAY,CAAC;AAC9B;;;GAGG;AACH,eAAO,MAAM,KAAK,gBAAY,CAAC;AAC/B,6GAA6G;AAC7G,eAAO,MAAM,QAAQ,gBAAe,CAAC;AACrC;;;GAGG;AACH,eAAO,MAAM,UAAU,gBAAY,CAAC;AACpC;;;GAGG;AACH,eAAO,MAAM,cAAc,gBAAY,CAAC;AACxC,0BAA0B;AAC1B,eAAO,MAAM,iBAAiB,gBAAY,CAAC;AAC3C;;;GAGG;AACH,eAAO,MAAM,cAAc,gBAAY,CAAC;AACxC,eAAO,MAAM,eAAe,gBAAY,CAAC;AACzC,eAAO,MAAM,YAAY,gBAAW,CAAC;AACrC,eAAO,MAAM,IAAI,gBAAW,CAAC;AAC7B,eAAO,MAAM,GAAG,gBAAY,CAAC;AAC7B,eAAO,MAAM,IAAI,gBAAyB,CAAC;AAC3C,eAAO,MAAM,SAAS,gBAAY,CAAC;AAEnC,eAAO,MAAM,OAAO,gBAAS,CAAC;AAC9B,eAAO,MAAM,UAAU,gBAAS,CAAC;AACjC,eAAO,MAAM,UAAU,gBAAS,CAAC;AACjC,eAAO,MAAM,SAAS,gBAAU,CAAC;AACjC,eAAO,MAAM,YAAY,gBAAU,CAAC;AACpC,eAAO,MAAM,MAAM,gBAAU,CAAC;AAC9B,eAAO,MAAM,kBAAkB,gBAA8C,CAAC;AAC9E,eAAO,MAAM,gBAAgB,sBAA6B,CAAC;AAC3D,eAAO,MAAM,WAAW,gBAAY,CAAC;AACrC,eAAO,MAAM,YAAY,gBAAY,CAAC;AACtC,eAAO,MAAM,QAAQ,gBAAY,CAAC"}
1
+ {"version":3,"file":"sszTypes.d.ts","sourceRoot":"","sources":["../../src/primitive/sszTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAC,oBAAoB,EAAC,MAAM,8BAA8B,CAAC;AAGlE,eAAO,MAAM,OAAO,aAAoB,CAAC;AACzC,eAAO,MAAM,IAAI,gBAAwB,CAAC;AAC1C,eAAO,MAAM,MAAM,gBAAwB,CAAC;AAC5C,eAAO,MAAM,MAAM,gBAAwB,CAAC;AAC5C,eAAO,MAAM,OAAO,gBAAyB,CAAC;AAC9C,eAAO,MAAM,OAAO,gBAAyB,CAAC;AAC9C,eAAO,MAAM,OAAO,gBAAyB,CAAC;AAC9C,eAAO,MAAM,OAAO,gBAAyB,CAAC;AAC9C,eAAO,MAAM,KAAK,gBAAwB,CAAC;AAC3C,eAAO,MAAM,MAAM,gBAAwB,CAAC;AAC5C,eAAO,MAAM,MAAM,gBAAwB,CAAC;AAC5C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS,gBAAwB,CAAC;AAC/C,eAAO,MAAM,YAAY,gBAA8C,CAAC;AACxE,eAAO,MAAM,QAAQ,gBAAwB,CAAC;AAC9C,eAAO,MAAM,SAAS,gBAAyB,CAAC;AAChD,eAAO,MAAM,SAAS,gBAAyB,CAAC;AAIhD;;;GAGG;AACH,eAAO,MAAM,IAAI,gBAAY,CAAC;AAC9B;;;GAGG;AACH,eAAO,MAAM,KAAK,gBAAY,CAAC;AAC/B,6GAA6G;AAC7G,eAAO,MAAM,QAAQ,gBAAe,CAAC;AACrC;;;GAGG;AACH,eAAO,MAAM,UAAU,gBAAY,CAAC;AACpC;;;GAGG;AACH,eAAO,MAAM,cAAc,gBAAY,CAAC;AACxC,0BAA0B;AAC1B,eAAO,MAAM,iBAAiB,gBAAY,CAAC;AAC3C;;;GAGG;AACH,eAAO,MAAM,cAAc,gBAAY,CAAC;AACxC,eAAO,MAAM,eAAe,gBAAY,CAAC;AACzC,eAAO,MAAM,YAAY,gBAAW,CAAC;AACrC,eAAO,MAAM,IAAI,gBAAW,CAAC;AAC7B,eAAO,MAAM,GAAG,gBAAY,CAAC;AAC7B,eAAO,MAAM,IAAI,gBAAyB,CAAC;AAC3C,eAAO,MAAM,SAAS,gBAAY,CAAC;AAEnC,eAAO,MAAM,OAAO,gBAAS,CAAC;AAC9B,eAAO,MAAM,UAAU,gBAAS,CAAC;AACjC,eAAO,MAAM,UAAU,gBAAS,CAAC;AACjC,eAAO,MAAM,SAAS,gBAAU,CAAC;AACjC,eAAO,MAAM,YAAY,gBAAU,CAAC;AACpC,eAAO,MAAM,MAAM,gBAAU,CAAC;AAC9B,eAAO,MAAM,kBAAkB,gBAA8C,CAAC;AAC9E,eAAO,MAAM,gBAAgB,sBAA6B,CAAC;AAC3D,eAAO,MAAM,WAAW,gBAAY,CAAC;AACrC,eAAO,MAAM,YAAY,gBAAY,CAAC;AACtC,eAAO,MAAM,QAAQ,gBAAY,CAAC"}
@@ -12,6 +12,17 @@ export const Bytes96 = new ByteVectorType(96);
12
12
  export const Uint8 = new UintNumberType(1);
13
13
  export const Uint16 = new UintNumberType(2);
14
14
  export const Uint32 = new UintNumberType(4);
15
+ /**
16
+ * A JS `number` is an IEEE-754 double which has 53 bits integer precision. This implies that it can store
17
+ * a value up to 2^53-1 without losing any precision (`Number.MAX_SAFE_INTEGER` represents that exact limit).
18
+ * So it can't store a 64 bit integer with precision in the higher bits.
19
+ *
20
+ * However, JS `bigint` arithmetics is ~100x slower than `number`.
21
+ * Therefor, this type uses `number` for 64 bits values, for use in well-analyzed cases where
22
+ * the value is known to never cross the `Number.MAX_SAFE_INTEGER` limit.
23
+ *
24
+ * Caution and reasoned analysis are always required before using this type as the consequence of misuse is a consensus split.
25
+ */
15
26
  export const UintNum64 = new UintNumberType(8);
16
27
  export const UintNumInf64 = new UintNumberType(8, { clipInfinity: true });
17
28
  export const UintBn64 = new UintBigintType(8);
@@ -1 +1 @@
1
- {"version":3,"file":"sszTypes.js","sourceRoot":"","sources":["../../src/primitive/sszTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sszTypes.js","sourceRoot":"","sources":["../../src/primitive/sszTypes.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -11,51 +11,50 @@
11
11
  "bugs": {
12
12
  "url": "https://github.com/ChainSafe/lodestar/issues"
13
13
  },
14
- "version": "1.36.0-dev.6d67a79656",
14
+ "version": "1.36.0-dev.6f46a8bd20",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
18
18
  "bun": "./src/index.ts",
19
+ "types": "./lib/index.d.ts",
19
20
  "import": "./lib/index.js"
20
21
  },
21
22
  "./altair": {
22
23
  "bun": "./src/altair/index.ts",
24
+ "types": "./lib/altair/index.d.ts",
23
25
  "import": "./lib/altair/index.js"
24
26
  },
25
27
  "./capella": {
26
28
  "bun": "./src/capella/index.ts",
29
+ "types": "./lib/capella/index.d.ts",
27
30
  "import": "./lib/capella/index.js"
28
31
  },
29
32
  "./bellatrix": {
30
33
  "bun": "./src/bellatrix/index.ts",
34
+ "types": "./lib/bellatrix/index.d.ts",
31
35
  "import": "./lib/bellatrix/index.js"
32
36
  },
33
37
  "./deneb": {
34
38
  "bun": "./src/deneb/index.ts",
39
+ "types": "./lib/deneb/index.d.ts",
35
40
  "import": "./lib/deneb/index.js"
36
41
  },
37
42
  "./electra": {
38
43
  "bun": "./src/electra/index.ts",
44
+ "types": "./lib/electra/index.d.ts",
39
45
  "import": "./lib/electra/index.js"
40
46
  },
41
47
  "./fulu": {
42
48
  "bun": "./src/fulu/index.ts",
49
+ "types": "./lib/fulu/index.d.ts",
43
50
  "import": "./lib/fulu/index.js"
44
51
  },
45
52
  "./phase0": {
46
53
  "bun": "./src/phase0/index.ts",
54
+ "types": "./lib/phase0/index.d.ts",
47
55
  "import": "./lib/phase0/index.js"
48
56
  }
49
57
  },
50
- "typesVersions": {
51
- "*": {
52
- "*": [
53
- "*",
54
- "lib/*",
55
- "lib/*/index"
56
- ]
57
- }
58
- },
59
58
  "files": [
60
59
  "src",
61
60
  "lib",
@@ -78,7 +77,7 @@
78
77
  "types": "lib/index.d.ts",
79
78
  "dependencies": {
80
79
  "@chainsafe/ssz": "^1.2.2",
81
- "@lodestar/params": "1.36.0-dev.6d67a79656",
80
+ "@lodestar/params": "1.36.0-dev.6f46a8bd20",
82
81
  "ethereum-cryptography": "^2.0.0"
83
82
  },
84
83
  "keywords": [
@@ -87,5 +86,5 @@
87
86
  "beacon",
88
87
  "blockchain"
89
88
  ],
90
- "gitHead": "61c242e785567cbf194f0d58941d768e84d1e7c4"
89
+ "gitHead": "a1cc4685a4ce081e2620a6b0b4f645e1167ec6e5"
91
90
  }
@@ -13,6 +13,17 @@ export const Bytes96 = new ByteVectorType(96);
13
13
  export const Uint8 = new UintNumberType(1);
14
14
  export const Uint16 = new UintNumberType(2);
15
15
  export const Uint32 = new UintNumberType(4);
16
+ /**
17
+ * A JS `number` is an IEEE-754 double which has 53 bits integer precision. This implies that it can store
18
+ * a value up to 2^53-1 without losing any precision (`Number.MAX_SAFE_INTEGER` represents that exact limit).
19
+ * So it can't store a 64 bit integer with precision in the higher bits.
20
+ *
21
+ * However, JS `bigint` arithmetics is ~100x slower than `number`.
22
+ * Therefor, this type uses `number` for 64 bits values, for use in well-analyzed cases where
23
+ * the value is known to never cross the `Number.MAX_SAFE_INTEGER` limit.
24
+ *
25
+ * Caution and reasoned analysis are always required before using this type as the consequence of misuse is a consensus split.
26
+ */
16
27
  export const UintNum64 = new UintNumberType(8);
17
28
  export const UintNumInf64 = new UintNumberType(8, {clipInfinity: true});
18
29
  export const UintBn64 = new UintBigintType(8);