@brightchain/brightchain-lib 0.2.1 → 0.5.0
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/package.json +1 -1
- package/src/browser.d.ts +12 -0
- package/src/browser.d.ts.map +1 -1
- package/src/browser.js +23 -1
- package/src/browser.js.map +1 -1
- package/src/lib/documents/base/document.d.ts.map +1 -1
- package/src/lib/documents/base/document.js +12 -5
- package/src/lib/documents/base/document.js.map +1 -1
- package/src/lib/documents/member/baseMemberDocument.d.ts +1 -1
- package/src/lib/documents/member/baseMemberDocument.d.ts.map +1 -1
- package/src/lib/energyAccount.d.ts +71 -0
- package/src/lib/energyAccount.d.ts.map +1 -0
- package/src/lib/energyAccount.js +124 -0
- package/src/lib/energyAccount.js.map +1 -0
- package/src/lib/energyConsts.d.ts +23 -0
- package/src/lib/energyConsts.d.ts.map +1 -0
- package/src/lib/energyConsts.js +31 -0
- package/src/lib/energyConsts.js.map +1 -0
- package/src/lib/enumeration-translations/memberType.d.ts +1 -1
- package/src/lib/enumeration-translations/memberType.d.ts.map +1 -1
- package/src/lib/enumeration-translations/memberType.js +6 -6
- package/src/lib/enumeration-translations/memberType.js.map +1 -1
- package/src/lib/enumerations/index.d.ts +0 -1
- package/src/lib/enumerations/index.d.ts.map +1 -1
- package/src/lib/enumerations/index.js +0 -1
- package/src/lib/enumerations/index.js.map +1 -1
- package/src/lib/enumerations/operationType.d.ts +25 -1
- package/src/lib/enumerations/operationType.d.ts.map +1 -1
- package/src/lib/enumerations/operationType.js +34 -1
- package/src/lib/enumerations/operationType.js.map +1 -1
- package/src/lib/errors/index.d.ts +6 -0
- package/src/lib/errors/index.d.ts.map +1 -1
- package/src/lib/errors/index.js +9 -0
- package/src/lib/errors/index.js.map +1 -1
- package/src/lib/errors/superCbl.d.ts +24 -0
- package/src/lib/errors/superCbl.d.ts.map +1 -0
- package/src/lib/errors/superCbl.js +43 -0
- package/src/lib/errors/superCbl.js.map +1 -0
- package/src/lib/index.d.ts +7 -0
- package/src/lib/index.d.ts.map +1 -1
- package/src/lib/index.js +7 -0
- package/src/lib/index.js.map +1 -1
- package/src/lib/interfaces/energyAccount.d.ts +37 -0
- package/src/lib/interfaces/energyAccount.d.ts.map +1 -0
- package/src/lib/interfaces/energyAccount.js +3 -0
- package/src/lib/interfaces/energyAccount.js.map +1 -0
- package/src/lib/interfaces/energyTransaction.d.ts +18 -2
- package/src/lib/interfaces/energyTransaction.d.ts.map +1 -1
- package/src/lib/interfaces/member/hydrated.d.ts +1 -2
- package/src/lib/interfaces/member/hydrated.d.ts.map +1 -1
- package/src/lib/interfaces/member/memberData.d.ts +1 -2
- package/src/lib/interfaces/member/memberData.d.ts.map +1 -1
- package/src/lib/interfaces/member/memberDto.d.ts +1 -2
- package/src/lib/interfaces/member/memberDto.d.ts.map +1 -1
- package/src/lib/interfaces/member/operational.d.ts +1 -2
- package/src/lib/interfaces/member/operational.d.ts.map +1 -1
- package/src/lib/interfaces/member/storage.d.ts +1 -1
- package/src/lib/interfaces/member/storage.d.ts.map +1 -1
- package/src/lib/interfaces/storage/blockStore.d.ts +59 -0
- package/src/lib/interfaces/storage/blockStore.d.ts.map +1 -1
- package/src/lib/interfaces/storage/cblWhitening.d.ts +76 -0
- package/src/lib/interfaces/storage/cblWhitening.d.ts.map +1 -0
- package/src/lib/interfaces/storage/cblWhitening.js +3 -0
- package/src/lib/interfaces/storage/cblWhitening.js.map +1 -0
- package/src/lib/interfaces/storage/index.d.ts +2 -0
- package/src/lib/interfaces/storage/index.d.ts.map +1 -1
- package/src/lib/interfaces/storage/superCbl.d.ts +102 -0
- package/src/lib/interfaces/storage/superCbl.d.ts.map +1 -0
- package/src/lib/interfaces/storage/superCbl.js +3 -0
- package/src/lib/interfaces/storage/superCbl.js.map +1 -0
- package/src/lib/operationCost.d.ts +13 -1
- package/src/lib/operationCost.d.ts.map +1 -1
- package/src/lib/operationCost.js +18 -2
- package/src/lib/operationCost.js.map +1 -1
- package/src/lib/schemas/quorumDocument.d.ts.map +1 -1
- package/src/lib/schemas/quorumDocument.js +1 -2
- package/src/lib/schemas/quorumDocument.js.map +1 -1
- package/src/lib/services/blockService.d.ts +2 -1
- package/src/lib/services/blockService.d.ts.map +1 -1
- package/src/lib/services/blockService.js +7 -10
- package/src/lib/services/blockService.js.map +1 -1
- package/src/lib/services/index.d.ts +2 -0
- package/src/lib/services/index.d.ts.map +1 -1
- package/src/lib/services/index.js +2 -0
- package/src/lib/services/index.js.map +1 -1
- package/src/lib/services/jsonCblCapacity.service.d.ts +80 -0
- package/src/lib/services/jsonCblCapacity.service.d.ts.map +1 -0
- package/src/lib/services/jsonCblCapacity.service.js +147 -0
- package/src/lib/services/jsonCblCapacity.service.js.map +1 -0
- package/src/lib/services/memberStore.d.ts.map +1 -1
- package/src/lib/services/memberStore.js +1 -2
- package/src/lib/services/memberStore.js.map +1 -1
- package/src/lib/services/superCbl.service.d.ts +68 -0
- package/src/lib/services/superCbl.service.d.ts.map +1 -0
- package/src/lib/services/superCbl.service.js +213 -0
- package/src/lib/services/superCbl.service.js.map +1 -0
- package/src/lib/services/tuple.service.d.ts.map +1 -1
- package/src/lib/services/tuple.service.js +17 -30
- package/src/lib/services/tuple.service.js.map +1 -1
- package/src/lib/services/xor.d.ts +24 -9
- package/src/lib/services/xor.d.ts.map +1 -1
- package/src/lib/services/xor.js +63 -14
- package/src/lib/services/xor.js.map +1 -1
- package/src/lib/sharedTypes.d.ts +1 -2
- package/src/lib/sharedTypes.d.ts.map +1 -1
- package/src/lib/sharedTypes.js.map +1 -1
- package/src/lib/stores/blockStoreAdapter.d.ts +5 -0
- package/src/lib/stores/blockStoreAdapter.d.ts.map +1 -1
- package/src/lib/stores/blockStoreAdapter.js +13 -0
- package/src/lib/stores/blockStoreAdapter.js.map +1 -1
- package/src/lib/stores/energyAccountStore.d.ts +43 -0
- package/src/lib/stores/energyAccountStore.d.ts.map +1 -0
- package/src/lib/stores/energyAccountStore.js +73 -0
- package/src/lib/stores/energyAccountStore.js.map +1 -0
- package/src/lib/stores/energyLedger.d.ts +40 -0
- package/src/lib/stores/energyLedger.d.ts.map +1 -0
- package/src/lib/stores/energyLedger.js +77 -0
- package/src/lib/stores/energyLedger.js.map +1 -0
- package/src/lib/stores/memoryBlockStore.d.ts +68 -0
- package/src/lib/stores/memoryBlockStore.d.ts.map +1 -1
- package/src/lib/stores/memoryBlockStore.js +298 -12
- package/src/lib/stores/memoryBlockStore.js.map +1 -1
- package/src/lib/test/testMembers.d.ts +1 -2
- package/src/lib/test/testMembers.d.ts.map +1 -1
- package/src/lib/test/testMembers.js +6 -7
- package/src/lib/test/testMembers.js.map +1 -1
- package/src/lib/utils/index.d.ts +11 -0
- package/src/lib/utils/index.d.ts.map +1 -1
- package/src/lib/utils/index.js +14 -0
- package/src/lib/utils/index.js.map +1 -1
- package/src/lib/utils/xorUtils.d.ts +46 -0
- package/src/lib/utils/xorUtils.d.ts.map +1 -0
- package/src/lib/utils/xorUtils.js +98 -0
- package/src/lib/utils/xorUtils.js.map +1 -0
- package/src/lib/enumerations/memberType.d.ts +0 -16
- package/src/lib/enumerations/memberType.d.ts.map +0 -1
- package/src/lib/enumerations/memberType.js +0 -20
- package/src/lib/enumerations/memberType.js.map +0 -1
- /package/{DEPRECATIONS.md → brightchain-lib/DEPRECATIONS.md} +0 -0
- /package/{DEPRECATIONS_REMOVED.md → brightchain-lib/DEPRECATIONS_REMOVED.md} +0 -0
- /package/{MIGRATION.md → brightchain-lib/MIGRATION.md} +0 -0
- /package/{NAMING_AUDIT.md → brightchain-lib/NAMING_AUDIT.md} +0 -0
- /package/{NAMING_CONVENTIONS.md → brightchain-lib/NAMING_CONVENTIONS.md} +0 -0
- /package/{README.md → brightchain-lib/README.md} +0 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.xorArrays = xorArrays;
|
|
4
|
+
exports.xorMultipleArrays = xorMultipleArrays;
|
|
5
|
+
exports.padToBlockSize = padToBlockSize;
|
|
6
|
+
exports.unpadCblData = unpadCblData;
|
|
7
|
+
const xor_1 = require("../services/xor");
|
|
8
|
+
/**
|
|
9
|
+
* XOR utility functions for CBL whitening operations.
|
|
10
|
+
* These utilities wrap XorService and add padding/unpadding for block-aligned storage.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* XOR two Uint8Arrays of equal length.
|
|
14
|
+
* Delegates to XorService.xor for the actual XOR operation.
|
|
15
|
+
*
|
|
16
|
+
* @param a - First array
|
|
17
|
+
* @param b - Second array
|
|
18
|
+
* @returns XOR result (a ⊕ b)
|
|
19
|
+
* @throws Error if arrays have different lengths
|
|
20
|
+
*/
|
|
21
|
+
function xorArrays(a, b) {
|
|
22
|
+
return xor_1.XorService.xor(a, b);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* XOR multiple Uint8Arrays of equal length together.
|
|
26
|
+
* Delegates to XorService.xorMultiple for the actual XOR operation.
|
|
27
|
+
*
|
|
28
|
+
* @param arrays - Array of Uint8Arrays to XOR together (must all be same length)
|
|
29
|
+
* @returns XOR result
|
|
30
|
+
* @throws Error if arrays have different lengths or if no arrays provided
|
|
31
|
+
*/
|
|
32
|
+
function xorMultipleArrays(arrays) {
|
|
33
|
+
return xor_1.XorService.xorMultiple(arrays);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Length prefix size in bytes (4 bytes = 32-bit unsigned integer).
|
|
37
|
+
* This allows for data up to ~4GB in size.
|
|
38
|
+
*/
|
|
39
|
+
const LENGTH_PREFIX_SIZE = 4;
|
|
40
|
+
/**
|
|
41
|
+
* Pad data to a multiple of block size with length prefix and random bytes.
|
|
42
|
+
* The padding ensures that the data aligns with block boundaries.
|
|
43
|
+
*
|
|
44
|
+
* Format: [4-byte length prefix][original data][random padding]
|
|
45
|
+
*
|
|
46
|
+
* @param data - The data to pad
|
|
47
|
+
* @param blockSize - The target block size
|
|
48
|
+
* @returns Padded data with length prefix
|
|
49
|
+
*/
|
|
50
|
+
function padToBlockSize(data, blockSize) {
|
|
51
|
+
if (blockSize <= 0) {
|
|
52
|
+
throw new Error(`Block size must be positive: ${blockSize}`);
|
|
53
|
+
}
|
|
54
|
+
// Total size needed: length prefix + data
|
|
55
|
+
const totalDataSize = LENGTH_PREFIX_SIZE + data.length;
|
|
56
|
+
// Calculate padded size (round up to next block boundary)
|
|
57
|
+
const paddedSize = Math.ceil(totalDataSize / blockSize) * blockSize;
|
|
58
|
+
// Create padded array
|
|
59
|
+
const padded = new Uint8Array(paddedSize);
|
|
60
|
+
// Write length prefix (big-endian 32-bit unsigned integer)
|
|
61
|
+
const view = new DataView(padded.buffer);
|
|
62
|
+
view.setUint32(0, data.length, false); // false = big-endian
|
|
63
|
+
// Copy original data after length prefix
|
|
64
|
+
padded.set(data, LENGTH_PREFIX_SIZE);
|
|
65
|
+
// Fill remaining bytes with random data for security
|
|
66
|
+
if (paddedSize > totalDataSize) {
|
|
67
|
+
const paddingBytes = padded.subarray(totalDataSize);
|
|
68
|
+
xor_1.XorService.generateKey(paddingBytes.length).forEach((byte, i) => {
|
|
69
|
+
paddingBytes[i] = byte;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
return padded;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Remove padding from CBL data by reading the length prefix.
|
|
76
|
+
* The length prefix tells us exactly how many bytes of original data follow.
|
|
77
|
+
*
|
|
78
|
+
* Format: [4-byte length prefix][original data][random padding]
|
|
79
|
+
*
|
|
80
|
+
* @param data - The padded CBL data with length prefix
|
|
81
|
+
* @returns Unpadded CBL data (original data without length prefix or padding)
|
|
82
|
+
* @throws Error if data is too short or length prefix is invalid
|
|
83
|
+
*/
|
|
84
|
+
function unpadCblData(data) {
|
|
85
|
+
if (data.length < LENGTH_PREFIX_SIZE) {
|
|
86
|
+
throw new Error(`Invalid padded data: too short (${data.length} bytes, need at least ${LENGTH_PREFIX_SIZE})`);
|
|
87
|
+
}
|
|
88
|
+
// Read length prefix (big-endian 32-bit unsigned integer)
|
|
89
|
+
const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
|
|
90
|
+
const originalLength = view.getUint32(0, false); // false = big-endian
|
|
91
|
+
// Validate length
|
|
92
|
+
if (originalLength > data.length - LENGTH_PREFIX_SIZE) {
|
|
93
|
+
throw new Error(`Invalid length prefix: claims ${originalLength} bytes but only ${data.length - LENGTH_PREFIX_SIZE} available`);
|
|
94
|
+
}
|
|
95
|
+
// Return original data (after length prefix, up to original length)
|
|
96
|
+
return data.subarray(LENGTH_PREFIX_SIZE, LENGTH_PREFIX_SIZE + originalLength);
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=xorUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xorUtils.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/utils/xorUtils.ts"],"names":[],"mappings":";;AAgBA,8BAEC;AAUD,8CAEC;AAkBD,wCAiCC;AAYD,oCAoBC;AAjHD,yCAA6C;AAE7C;;;GAGG;AAEH;;;;;;;;GAQG;AACH,SAAgB,SAAS,CAAC,CAAa,EAAE,CAAa;IACpD,OAAO,gBAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAAC,MAAoB;IACpD,OAAO,gBAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B;;;;;;;;;GASG;AACH,SAAgB,cAAc,CAC5B,IAAgB,EAChB,SAAiB;IAEjB,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,0CAA0C;IAC1C,MAAM,aAAa,GAAG,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC;IAEvD,0DAA0D;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAEpE,sBAAsB;IACtB,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IAE1C,2DAA2D;IAC3D,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,qBAAqB;IAE5D,yCAAyC;IACzC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAErC,qDAAqD;IACrD,IAAI,UAAU,GAAG,aAAa,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACpD,gBAAU,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9D,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAAC,IAAgB;IAC3C,IAAI,IAAI,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,mCAAmC,IAAI,CAAC,MAAM,yBAAyB,kBAAkB,GAAG,CAC7F,CAAC;IACJ,CAAC;IAED,0DAA0D;IAC1D,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACzE,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,qBAAqB;IAEtE,kBAAkB;IAClB,IAAI,cAAc,GAAG,IAAI,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CACb,iCAAiC,cAAc,mBAAmB,IAAI,CAAC,MAAM,GAAG,kBAAkB,YAAY,CAC/G,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,OAAO,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,cAAc,CAAC,CAAC;AAChF,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Types of members in the system.
|
|
3
|
-
* In the Owner Free Filesystem (OFF), members can be:
|
|
4
|
-
* 1. Admin - System administrators
|
|
5
|
-
* 2. System - System services and automated processes
|
|
6
|
-
* 3. User - Regular users
|
|
7
|
-
* 4. Anonymous - Used for blocks that don't need a real owner
|
|
8
|
-
*/
|
|
9
|
-
export declare enum MemberType {
|
|
10
|
-
Admin = "Admin",
|
|
11
|
-
System = "System",
|
|
12
|
-
User = "User",
|
|
13
|
-
Anonymous = "Anonymous"
|
|
14
|
-
}
|
|
15
|
-
export default MemberType;
|
|
16
|
-
//# sourceMappingURL=memberType.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memberType.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/enumerations/memberType.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,oBAAY,UAAU;IACpB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,SAAS,cAAc;CACxB;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MemberType = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Types of members in the system.
|
|
6
|
-
* In the Owner Free Filesystem (OFF), members can be:
|
|
7
|
-
* 1. Admin - System administrators
|
|
8
|
-
* 2. System - System services and automated processes
|
|
9
|
-
* 3. User - Regular users
|
|
10
|
-
* 4. Anonymous - Used for blocks that don't need a real owner
|
|
11
|
-
*/
|
|
12
|
-
var MemberType;
|
|
13
|
-
(function (MemberType) {
|
|
14
|
-
MemberType["Admin"] = "Admin";
|
|
15
|
-
MemberType["System"] = "System";
|
|
16
|
-
MemberType["User"] = "User";
|
|
17
|
-
MemberType["Anonymous"] = "Anonymous";
|
|
18
|
-
})(MemberType || (exports.MemberType = MemberType = {}));
|
|
19
|
-
exports.default = MemberType;
|
|
20
|
-
//# sourceMappingURL=memberType.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memberType.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/enumerations/memberType.ts"],"names":[],"mappings":";;;AAAA;;;;;;;GAOG;AACH,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,6BAAe,CAAA;IACf,+BAAiB,CAAA;IACjB,2BAAa,CAAA;IACb,qCAAuB,CAAA;AACzB,CAAC,EALW,UAAU,0BAAV,UAAU,QAKrB;AAED,kBAAe,UAAU,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|