@matter/types 0.15.0-alpha.0-20250613-a55f991d4 → 0.15.0-alpha.0-20250616-4b3754906
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/dist/cjs/datatype/NodeId.d.ts +2 -2
- package/dist/cjs/datatype/NodeId.d.ts.map +1 -1
- package/dist/cjs/datatype/NodeId.js +2 -2
- package/dist/cjs/datatype/NodeId.js.map +1 -1
- package/dist/esm/datatype/NodeId.d.ts +2 -2
- package/dist/esm/datatype/NodeId.d.ts.map +1 -1
- package/dist/esm/datatype/NodeId.js +3 -3
- package/dist/esm/datatype/NodeId.js.map +1 -1
- package/package.json +5 -5
- package/src/datatype/NodeId.ts +2 -2
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { Branded } from "#general";
|
|
6
|
+
import { Branded, Crypto } from "#general";
|
|
7
7
|
import { TlvWrapper } from "../tlv/TlvWrapper.js";
|
|
8
8
|
import { CaseAuthenticatedTag } from "./CaseAuthenticatedTag.js";
|
|
9
9
|
/**
|
|
@@ -26,7 +26,7 @@ export declare namespace NodeId {
|
|
|
26
26
|
* must have an Operational Node ID as the source address. All unicast messages must have an Operational Node ID
|
|
27
27
|
* as the destination address.
|
|
28
28
|
*/
|
|
29
|
-
const randomOperationalNodeId: () => NodeId;
|
|
29
|
+
const randomOperationalNodeId: (crypto: Crypto) => NodeId;
|
|
30
30
|
/**
|
|
31
31
|
* Returns whether the given Node ID is an Operational Node ID.
|
|
32
32
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeId.d.ts","sourceRoot":"","sources":["../../../src/datatype/NodeId.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"NodeId.d.ts","sourceRoot":"","sources":["../../../src/datatype/NodeId.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,EAAS,MAAM,EAAmC,MAAM,UAAU,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE/C,wBAAgB,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAE9D;AAED,yBAAiB,MAAM,CAAC;IAIpB;;;OAGG;IACI,MAAM,mBAAmB,QAAY,CAAC;IAEtC,MAAM,WAAW,GAAI,QAAQ,MAAM,WAIzC,CAAC;IAEF;;;;OAIG;IACI,MAAM,uBAAuB,GAAI,QAAQ,MAAM,KAAG,MAOxD,CAAC;IAEF;;OAEG;IACI,MAAM,mBAAmB,GAAI,QAAQ,MAAM,KAAG,OAEpD,CAAC;IAEF,gHAAgH;IACzG,MAAM,aAAa,GAAI,QAAQ,MAAM,KAAG,OAG9C,CAAC;IAEF,gHAAgH;IACzG,MAAM,WAAW,GAAI,SAAS,MAAM,KAAG,MAE7C,CAAC;IAEF;;;;OAIG;IACI,MAAM,wBAAwB,GAAI,IAAI,MAAM,KAAG,MAKrD,CAAC;IAEF;;;OAGG;IACI,MAAM,wBAAwB,GAAI,IAAI,oBAAoB,KAAG,MAKnE,CAAC;IAEK,MAAM,sBAAsB,GAAI,QAAQ,MAAM,KAAG,OAGvD,CAAC;IAEK,MAAM,6BAA6B,GAAI,QAAQ,MAAM,KAAG,oBAK9D,CAAC;IAEF;;;;OAIG;IACI,MAAM,wBAAwB,GAAI,IAAI,MAAM,KAAG,MAKrD,CAAC;CACL;AAED,wCAAwC;AACxC,eAAO,MAAM,SAAS,qCAIrB,CAAC"}
|
|
@@ -44,9 +44,9 @@ function NodeId(v) {
|
|
|
44
44
|
writer.writeUInt64(nodeId);
|
|
45
45
|
return import_general.Bytes.toHex(writer.toByteArray()).toUpperCase();
|
|
46
46
|
};
|
|
47
|
-
NodeId2.randomOperationalNodeId = () => {
|
|
47
|
+
NodeId2.randomOperationalNodeId = (crypto) => {
|
|
48
48
|
while (true) {
|
|
49
|
-
const randomBigInt =
|
|
49
|
+
const randomBigInt = crypto.randomBigInt(8);
|
|
50
50
|
if (randomBigInt >= OPERATIONAL_NODE_MIN && randomBigInt <= OPERATIONAL_NODE_MAX) {
|
|
51
51
|
return NodeId2(randomBigInt);
|
|
52
52
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/datatype/NodeId.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAwB;AACxB,qBAAwE;AACxE,uBAA0B;AAC1B,wBAA2B;AAC3B,kCAAqC;AAVrC;AAAA;AAAA;AAAA;AAAA;AAoBO,SAAS,OAAO,GAAyC;AAC5D,SAAO,OAAO,CAAC;AACnB;AAAA,CAEO,CAAUA,YAAV;AACH,QAAM,uBAAuB,OAAO,oBAAoB;AACxD,QAAM,uBAAuB,OAAO,oBAAoB;AAMjD,EAAMA,QAAA,sBAAsBA,QAAO,CAAC;AAEpC,EAAMA,QAAA,cAAc,CAAC,WAAmB;AAC3C,UAAM,SAAS,IAAI,0BAAW;AAC9B,WAAO,YAAY,MAAM;AACzB,WAAO,qBAAM,MAAM,OAAO,YAAY,CAAC,EAAE,YAAY;AAAA,EACzD;AAOO,EAAMA,QAAA,0BAA0B,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAwB;AACxB,qBAAwE;AACxE,uBAA0B;AAC1B,wBAA2B;AAC3B,kCAAqC;AAVrC;AAAA;AAAA;AAAA;AAAA;AAoBO,SAAS,OAAO,GAAyC;AAC5D,SAAO,OAAO,CAAC;AACnB;AAAA,CAEO,CAAUA,YAAV;AACH,QAAM,uBAAuB,OAAO,oBAAoB;AACxD,QAAM,uBAAuB,OAAO,oBAAoB;AAMjD,EAAMA,QAAA,sBAAsBA,QAAO,CAAC;AAEpC,EAAMA,QAAA,cAAc,CAAC,WAAmB;AAC3C,UAAM,SAAS,IAAI,0BAAW;AAC9B,WAAO,YAAY,MAAM;AACzB,WAAO,qBAAM,MAAM,OAAO,YAAY,CAAC,EAAE,YAAY;AAAA,EACzD;AAOO,EAAMA,QAAA,0BAA0B,CAAC,WAA2B;AAC/D,WAAO,MAAM;AACT,YAAM,eAAe,OAAO,aAAa,CAAC;AAC1C,UAAI,gBAAgB,wBAAwB,gBAAgB,sBAAsB;AAC9E,eAAOA,QAAO,YAAY;AAAA,MAC9B;AAAA,IACJ;AAAA,EACJ;AAKO,EAAMA,QAAA,sBAAsB,CAAC,WAA4B;AAC5D,WAAO,UAAU,wBAAwB,UAAU;AAAA,EACvD;AAGO,EAAMA,QAAA,gBAAgB,CAAC,WAA4B;AACtD,UAAM,YAAY,OAAO,SAAS,EAAE;AACpC,WAAO,UAAU,WAAW,cAAc,KAAK,UAAU,WAAW;AAAA,EACxE;AAGO,EAAMA,QAAA,cAAc,CAAC,YAA4B;AACpD,WAAOA,QAAO,OAAO,uBAAmB,wBAAQ,OAAO,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC;AAAA,EAC3F;AAOO,EAAMA,QAAA,2BAA2B,CAAC,OAAuB;AAC5D,QAAI,KAAK,KAAK,KAAK,YAAY;AAC3B,YAAM,IAAI,mCAAoB,eAAe,EAAE,EAAE;AAAA,IACrD;AACA,WAAOA,QAAO,OAAO,eAAe,GAAG,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC;AAAA,EACzE;AAMO,EAAMA,QAAA,2BAA2B,CAAC,OAAqC;AAC1E,QAAI,KAAK,KAAK,KAAK,YAAY;AAC3B,YAAM,IAAI,mCAAoB,mCAAmC,EAAE,EAAE;AAAA,IACzE;AACA,WAAOA,QAAO,OAAO,eAAe,GAAG,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC;AAAA,EACzE;AAEO,EAAMA,QAAA,yBAAyB,CAAC,WAA4B;AAC/D,UAAM,YAAY,OAAO,SAAS,EAAE;AACpC,WAAO,UAAU,WAAW,UAAU,KAAK,UAAU,WAAW;AAAA,EACpE;AAEO,EAAMA,QAAA,gCAAgC,CAAC,WAAyC;AACnF,QAAI,KAACA,QAAA,wBAAuB,MAAM,GAAG;AACjC,YAAM,IAAI,mCAAoB,mCAAmC,MAAM,EAAE;AAAA,IAC7E;AACA,eAAO,kDAAqB,SAAS,OAAO,SAAS,EAAE,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;AAAA,EAC1E;AAOO,EAAMA,QAAA,2BAA2B,CAAC,OAAuB;AAC5D,QAAI,KAAK,KAAK,KAAK,YAAY;AAC3B,YAAM,IAAI,mCAAoB,eAAe,EAAE,EAAE;AAAA,IACrD;AACA,WAAOA,QAAO,OAAO,eAAe,GAAG,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC;AAAA,EACzE;AAAA,GA7Fa;AAiGV,MAAM,YAAY,IAAI;AAAA,EACzB;AAAA,EACA,YAAU;AAAA,EACV,WAAS,OAAO,OAAO,KAAK,CAAC;AACjC;",
|
|
5
5
|
"names": ["NodeId"]
|
|
6
6
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { Branded } from "#general";
|
|
6
|
+
import { Branded, Crypto } from "#general";
|
|
7
7
|
import { TlvWrapper } from "../tlv/TlvWrapper.js";
|
|
8
8
|
import { CaseAuthenticatedTag } from "./CaseAuthenticatedTag.js";
|
|
9
9
|
/**
|
|
@@ -26,7 +26,7 @@ export declare namespace NodeId {
|
|
|
26
26
|
* must have an Operational Node ID as the source address. All unicast messages must have an Operational Node ID
|
|
27
27
|
* as the destination address.
|
|
28
28
|
*/
|
|
29
|
-
const randomOperationalNodeId: () => NodeId;
|
|
29
|
+
const randomOperationalNodeId: (crypto: Crypto) => NodeId;
|
|
30
30
|
/**
|
|
31
31
|
* Returns whether the given Node ID is an Operational Node ID.
|
|
32
32
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeId.d.ts","sourceRoot":"","sources":["../../../src/datatype/NodeId.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"NodeId.d.ts","sourceRoot":"","sources":["../../../src/datatype/NodeId.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,EAAS,MAAM,EAAmC,MAAM,UAAU,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE/C,wBAAgB,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAE9D;AAED,yBAAiB,MAAM,CAAC;IAIpB;;;OAGG;IACI,MAAM,mBAAmB,QAAY,CAAC;IAEtC,MAAM,WAAW,GAAI,QAAQ,MAAM,WAIzC,CAAC;IAEF;;;;OAIG;IACI,MAAM,uBAAuB,GAAI,QAAQ,MAAM,KAAG,MAOxD,CAAC;IAEF;;OAEG;IACI,MAAM,mBAAmB,GAAI,QAAQ,MAAM,KAAG,OAEpD,CAAC;IAEF,gHAAgH;IACzG,MAAM,aAAa,GAAI,QAAQ,MAAM,KAAG,OAG9C,CAAC;IAEF,gHAAgH;IACzG,MAAM,WAAW,GAAI,SAAS,MAAM,KAAG,MAE7C,CAAC;IAEF;;;;OAIG;IACI,MAAM,wBAAwB,GAAI,IAAI,MAAM,KAAG,MAKrD,CAAC;IAEF;;;OAGG;IACI,MAAM,wBAAwB,GAAI,IAAI,oBAAoB,KAAG,MAKnE,CAAC;IAEK,MAAM,sBAAsB,GAAI,QAAQ,MAAM,KAAG,OAGvD,CAAC;IAEK,MAAM,6BAA6B,GAAI,QAAQ,MAAM,KAAG,oBAK9D,CAAC;IAEF;;;;OAIG;IACI,MAAM,wBAAwB,GAAI,IAAI,MAAM,KAAG,MAKrD,CAAC;CACL;AAED,wCAAwC;AACxC,eAAO,MAAM,SAAS,qCAIrB,CAAC"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { GroupId } from "#datatype/GroupId.js";
|
|
7
|
-
import { Bytes,
|
|
7
|
+
import { Bytes, DataWriter, UnexpectedDataError } from "#general";
|
|
8
8
|
import { TlvUInt64 } from "../tlv/TlvNumber.js";
|
|
9
9
|
import { TlvWrapper } from "../tlv/TlvWrapper.js";
|
|
10
10
|
import { CaseAuthenticatedTag } from "./CaseAuthenticatedTag.js";
|
|
@@ -20,9 +20,9 @@ function NodeId(v) {
|
|
|
20
20
|
writer.writeUInt64(nodeId);
|
|
21
21
|
return Bytes.toHex(writer.toByteArray()).toUpperCase();
|
|
22
22
|
};
|
|
23
|
-
NodeId2.randomOperationalNodeId = () => {
|
|
23
|
+
NodeId2.randomOperationalNodeId = (crypto) => {
|
|
24
24
|
while (true) {
|
|
25
|
-
const randomBigInt =
|
|
25
|
+
const randomBigInt = crypto.randomBigInt(8);
|
|
26
26
|
if (randomBigInt >= OPERATIONAL_NODE_MIN && randomBigInt <= OPERATIONAL_NODE_MAX) {
|
|
27
27
|
return NodeId2(randomBigInt);
|
|
28
28
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/datatype/NodeId.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,eAAe;AACxB,SAAkB,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,eAAe;AACxB,SAAkB,OAAe,YAAY,2BAA2B;AACxE,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAC3B,SAAS,4BAA4B;AAU9B,SAAS,OAAO,GAAyC;AAC5D,SAAO,OAAO,CAAC;AACnB;AAAA,CAEO,CAAUA,YAAV;AACH,QAAM,uBAAuB,OAAO,oBAAoB;AACxD,QAAM,uBAAuB,OAAO,oBAAoB;AAMjD,EAAMA,QAAA,sBAAsBA,QAAO,CAAC;AAEpC,EAAMA,QAAA,cAAc,CAAC,WAAmB;AAC3C,UAAM,SAAS,IAAI,WAAW;AAC9B,WAAO,YAAY,MAAM;AACzB,WAAO,MAAM,MAAM,OAAO,YAAY,CAAC,EAAE,YAAY;AAAA,EACzD;AAOO,EAAMA,QAAA,0BAA0B,CAAC,WAA2B;AAC/D,WAAO,MAAM;AACT,YAAM,eAAe,OAAO,aAAa,CAAC;AAC1C,UAAI,gBAAgB,wBAAwB,gBAAgB,sBAAsB;AAC9E,eAAOA,QAAO,YAAY;AAAA,MAC9B;AAAA,IACJ;AAAA,EACJ;AAKO,EAAMA,QAAA,sBAAsB,CAAC,WAA4B;AAC5D,WAAO,UAAU,wBAAwB,UAAU;AAAA,EACvD;AAGO,EAAMA,QAAA,gBAAgB,CAAC,WAA4B;AACtD,UAAM,YAAY,OAAO,SAAS,EAAE;AACpC,WAAO,UAAU,WAAW,cAAc,KAAK,UAAU,WAAW;AAAA,EACxE;AAGO,EAAMA,QAAA,cAAc,CAAC,YAA4B;AACpD,WAAOA,QAAO,OAAO,mBAAmB,QAAQ,OAAO,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC;AAAA,EAC3F;AAOO,EAAMA,QAAA,2BAA2B,CAAC,OAAuB;AAC5D,QAAI,KAAK,KAAK,KAAK,YAAY;AAC3B,YAAM,IAAI,oBAAoB,eAAe,EAAE,EAAE;AAAA,IACrD;AACA,WAAOA,QAAO,OAAO,eAAe,GAAG,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC;AAAA,EACzE;AAMO,EAAMA,QAAA,2BAA2B,CAAC,OAAqC;AAC1E,QAAI,KAAK,KAAK,KAAK,YAAY;AAC3B,YAAM,IAAI,oBAAoB,mCAAmC,EAAE,EAAE;AAAA,IACzE;AACA,WAAOA,QAAO,OAAO,eAAe,GAAG,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC;AAAA,EACzE;AAEO,EAAMA,QAAA,yBAAyB,CAAC,WAA4B;AAC/D,UAAM,YAAY,OAAO,SAAS,EAAE;AACpC,WAAO,UAAU,WAAW,UAAU,KAAK,UAAU,WAAW;AAAA,EACpE;AAEO,EAAMA,QAAA,gCAAgC,CAAC,WAAyC;AACnF,QAAI,KAACA,QAAA,wBAAuB,MAAM,GAAG;AACjC,YAAM,IAAI,oBAAoB,mCAAmC,MAAM,EAAE;AAAA,IAC7E;AACA,WAAO,qBAAqB,SAAS,OAAO,SAAS,EAAE,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;AAAA,EAC1E;AAOO,EAAMA,QAAA,2BAA2B,CAAC,OAAuB;AAC5D,QAAI,KAAK,KAAK,KAAK,YAAY;AAC3B,YAAM,IAAI,oBAAoB,eAAe,EAAE,EAAE;AAAA,IACrD;AACA,WAAOA,QAAO,OAAO,eAAe,GAAG,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC;AAAA,EACzE;AAAA,GA7Fa;AAiGV,MAAM,YAAY,IAAI;AAAA,EACzB;AAAA,EACA,YAAU;AAAA,EACV,WAAS,OAAO,OAAO,KAAK,CAAC;AACjC;",
|
|
5
5
|
"names": ["NodeId"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/types",
|
|
3
|
-
"version": "0.15.0-alpha.0-
|
|
3
|
+
"version": "0.15.0-alpha.0-20250616-4b3754906",
|
|
4
4
|
"description": "Definitions for Matter application",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -33,12 +33,12 @@
|
|
|
33
33
|
"embed-examples": "embedme **/README.md"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@matter/general": "0.15.0-alpha.0-
|
|
37
|
-
"@matter/model": "0.15.0-alpha.0-
|
|
36
|
+
"@matter/general": "0.15.0-alpha.0-20250616-4b3754906",
|
|
37
|
+
"@matter/model": "0.15.0-alpha.0-20250616-4b3754906"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@matter/tools": "0.15.0-alpha.0-
|
|
41
|
-
"@matter/testing": "0.15.0-alpha.0-
|
|
40
|
+
"@matter/tools": "0.15.0-alpha.0-20250616-4b3754906",
|
|
41
|
+
"@matter/testing": "0.15.0-alpha.0-20250616-4b3754906"
|
|
42
42
|
},
|
|
43
43
|
"files": [
|
|
44
44
|
"dist/**/*",
|
package/src/datatype/NodeId.ts
CHANGED
|
@@ -43,9 +43,9 @@ export namespace NodeId {
|
|
|
43
43
|
* must have an Operational Node ID as the source address. All unicast messages must have an Operational Node ID
|
|
44
44
|
* as the destination address.
|
|
45
45
|
*/
|
|
46
|
-
export const randomOperationalNodeId = (): NodeId => {
|
|
46
|
+
export const randomOperationalNodeId = (crypto: Crypto): NodeId => {
|
|
47
47
|
while (true) {
|
|
48
|
-
const randomBigInt =
|
|
48
|
+
const randomBigInt = crypto.randomBigInt(8);
|
|
49
49
|
if (randomBigInt >= OPERATIONAL_NODE_MIN && randomBigInt <= OPERATIONAL_NODE_MAX) {
|
|
50
50
|
return NodeId(randomBigInt);
|
|
51
51
|
}
|