@brightchain/brightchain-lib 0.8.1 → 0.9.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/brightchain-lib/BLOCK_COVERAGE_AUDIT.md +169 -0
- package/package.json +2 -2
- package/src/browser.d.ts +1 -4
- package/src/browser.d.ts.map +1 -1
- package/src/browser.js +6 -9
- package/src/browser.js.map +1 -1
- package/src/lib/blockMetadata.d.ts +10 -9
- package/src/lib/blockMetadata.d.ts.map +1 -1
- package/src/lib/blockMetadata.js +20 -36
- package/src/lib/blockMetadata.js.map +1 -1
- package/src/lib/blocks/base.d.ts +23 -0
- package/src/lib/blocks/base.d.ts.map +1 -1
- package/src/lib/blocks/base.js +33 -15
- package/src/lib/blocks/base.js.map +1 -1
- package/src/lib/blocks/cbl.d.ts +34 -1
- package/src/lib/blocks/cbl.d.ts.map +1 -1
- package/src/lib/blocks/cbl.js +33 -0
- package/src/lib/blocks/cbl.js.map +1 -1
- package/src/lib/blocks/cblBase.d.ts +45 -1
- package/src/lib/blocks/cblBase.d.ts.map +1 -1
- package/src/lib/blocks/cblBase.js +89 -44
- package/src/lib/blocks/cblBase.js.map +1 -1
- package/src/lib/blocks/encrypted.d.ts.map +1 -1
- package/src/lib/blocks/encrypted.js +68 -21
- package/src/lib/blocks/encrypted.js.map +1 -1
- package/src/lib/blocks/ephemeral.d.ts.map +1 -1
- package/src/lib/blocks/ephemeral.js +17 -10
- package/src/lib/blocks/ephemeral.js.map +1 -1
- package/src/lib/blocks/rawData.d.ts.map +1 -1
- package/src/lib/blocks/rawData.js +5 -1
- package/src/lib/blocks/rawData.js.map +1 -1
- package/src/lib/constants.d.ts +37 -0
- package/src/lib/constants.d.ts.map +1 -1
- package/src/lib/constants.js +40 -1
- package/src/lib/constants.js.map +1 -1
- package/src/lib/documents/member/memberDocument.d.ts +4 -3
- package/src/lib/documents/member/memberDocument.d.ts.map +1 -1
- package/src/lib/documents/member/memberDocument.js +9 -8
- package/src/lib/documents/member/memberDocument.js.map +1 -1
- package/src/lib/documents/member/memberHydration.d.ts.map +1 -1
- package/src/lib/documents/member/memberHydration.js +11 -13
- package/src/lib/documents/member/memberHydration.js.map +1 -1
- package/src/lib/documents/member/memberOperational.d.ts.map +1 -1
- package/src/lib/documents/member/memberOperational.js +2 -2
- package/src/lib/documents/member/memberOperational.js.map +1 -1
- package/src/lib/documents/network/networkDocument.d.ts.map +1 -1
- package/src/lib/documents/network/networkDocument.js +4 -3
- package/src/lib/documents/network/networkDocument.js.map +1 -1
- package/src/lib/encryptedBlockMetadata.d.ts +11 -4
- package/src/lib/encryptedBlockMetadata.d.ts.map +1 -1
- package/src/lib/encryptedBlockMetadata.js +29 -22
- package/src/lib/encryptedBlockMetadata.js.map +1 -1
- package/src/lib/enumerations/blockSize.d.ts +2 -2
- package/src/lib/enumerations/blockSize.d.ts.map +1 -1
- package/src/lib/enumerations/blockSize.js +15 -15
- package/src/lib/enumerations/blockSize.js.map +1 -1
- package/src/lib/enumerations/{stringNames.d.ts → brightChainStrings.d.ts} +4 -3
- package/src/lib/enumerations/brightChainStrings.d.ts.map +1 -0
- package/src/lib/enumerations/brightChainStrings.js +437 -0
- package/src/lib/enumerations/brightChainStrings.js.map +1 -0
- package/src/lib/enumerations/cblErrorType.d.ts +1 -0
- package/src/lib/enumerations/cblErrorType.d.ts.map +1 -1
- package/src/lib/enumerations/cblErrorType.js +1 -0
- package/src/lib/enumerations/cblErrorType.js.map +1 -1
- package/src/lib/enumerations/index.d.ts +1 -1
- package/src/lib/enumerations/index.d.ts.map +1 -1
- package/src/lib/enumerations/index.js +1 -1
- package/src/lib/enumerations/index.js.map +1 -1
- package/src/lib/enumerations/votingDerivationErrorType.d.ts +2 -2
- package/src/lib/enumerations/votingDerivationErrorType.d.ts.map +1 -1
- package/src/lib/enumerations/votingDerivationErrorType.js +11 -11
- package/src/lib/enumerations/votingDerivationErrorType.js.map +1 -1
- package/src/lib/ephemeralBlockMetadata.d.ts +10 -7
- package/src/lib/ephemeralBlockMetadata.d.ts.map +1 -1
- package/src/lib/ephemeralBlockMetadata.js +24 -17
- package/src/lib/ephemeralBlockMetadata.js.map +1 -1
- package/src/lib/errors/block/blockAccess.d.ts +2 -2
- package/src/lib/errors/block/blockAccess.d.ts.map +1 -1
- package/src/lib/errors/block/blockAccess.js +8 -8
- package/src/lib/errors/block/blockAccess.js.map +1 -1
- package/src/lib/errors/block/blockCapacity.d.ts +2 -2
- package/src/lib/errors/block/blockCapacity.d.ts.map +1 -1
- package/src/lib/errors/block/blockCapacity.js +8 -8
- package/src/lib/errors/block/blockCapacity.js.map +1 -1
- package/src/lib/errors/block/blockError.d.ts +2 -2
- package/src/lib/errors/block/blockError.d.ts.map +1 -1
- package/src/lib/errors/block/blockError.js +16 -16
- package/src/lib/errors/block/blockError.js.map +1 -1
- package/src/lib/errors/block/blockMetadata.d.ts +2 -2
- package/src/lib/errors/block/blockMetadata.d.ts.map +1 -1
- package/src/lib/errors/block/blockMetadata.js +8 -8
- package/src/lib/errors/block/blockMetadata.js.map +1 -1
- package/src/lib/errors/block/blockValidation.d.ts +2 -2
- package/src/lib/errors/block/blockValidation.d.ts.map +1 -1
- package/src/lib/errors/block/blockValidation.js +36 -36
- package/src/lib/errors/block/blockValidation.js.map +1 -1
- package/src/lib/errors/block/cannotDecrypt.js +2 -2
- package/src/lib/errors/block/cannotDecrypt.js.map +1 -1
- package/src/lib/errors/block/cannotEncrypt.js +2 -2
- package/src/lib/errors/block/cannotEncrypt.js.map +1 -1
- package/src/lib/errors/blockServiceError.d.ts +2 -2
- package/src/lib/errors/blockServiceError.d.ts.map +1 -1
- package/src/lib/errors/blockServiceError.js +15 -15
- package/src/lib/errors/blockServiceError.js.map +1 -1
- package/src/lib/errors/bufferError.js +2 -2
- package/src/lib/errors/bufferError.js.map +1 -1
- package/src/lib/errors/cblError.d.ts +2 -2
- package/src/lib/errors/cblError.d.ts.map +1 -1
- package/src/lib/errors/cblError.js +37 -36
- package/src/lib/errors/cblError.js.map +1 -1
- package/src/lib/errors/checksumMismatch.js +2 -2
- package/src/lib/errors/checksumMismatch.js.map +1 -1
- package/src/lib/errors/disposed.js +2 -2
- package/src/lib/errors/disposed.js.map +1 -1
- package/src/lib/errors/document.d.ts +2 -2
- package/src/lib/errors/document.d.ts.map +1 -1
- package/src/lib/errors/document.js +5 -5
- package/src/lib/errors/document.js.map +1 -1
- package/src/lib/errors/eciesError.d.ts +2 -2
- package/src/lib/errors/eciesError.d.ts.map +1 -1
- package/src/lib/errors/eciesError.js +20 -20
- package/src/lib/errors/eciesError.js.map +1 -1
- package/src/lib/errors/extendedCblError.d.ts +2 -2
- package/src/lib/errors/extendedCblError.d.ts.map +1 -1
- package/src/lib/errors/extendedCblError.js +25 -25
- package/src/lib/errors/extendedCblError.js.map +1 -1
- package/src/lib/errors/failedToHydrate.js +2 -2
- package/src/lib/errors/failedToHydrate.js.map +1 -1
- package/src/lib/errors/failedToSerialize.js +2 -2
- package/src/lib/errors/failedToSerialize.js.map +1 -1
- package/src/lib/errors/fecError.d.ts +2 -2
- package/src/lib/errors/fecError.d.ts.map +1 -1
- package/src/lib/errors/fecError.js +19 -19
- package/src/lib/errors/fecError.js.map +1 -1
- package/src/lib/errors/handleTupleError.d.ts +2 -2
- package/src/lib/errors/handleTupleError.d.ts.map +1 -1
- package/src/lib/errors/handleTupleError.js +5 -5
- package/src/lib/errors/handleTupleError.js.map +1 -1
- package/src/lib/errors/index.d.ts +0 -6
- package/src/lib/errors/index.d.ts.map +1 -1
- package/src/lib/errors/index.js +0 -9
- package/src/lib/errors/index.js.map +1 -1
- package/src/lib/errors/invalidBlockSize.js +2 -2
- package/src/lib/errors/invalidBlockSize.js.map +1 -1
- package/src/lib/errors/invalidBlockSizeLength.js +2 -2
- package/src/lib/errors/invalidBlockSizeLength.js.map +1 -1
- package/src/lib/errors/invalidCredentials.js +2 -2
- package/src/lib/errors/invalidCredentials.js.map +1 -1
- package/src/lib/errors/invalidIDFormat.js +2 -2
- package/src/lib/errors/invalidIDFormat.js.map +1 -1
- package/src/lib/errors/invalidSessionID.js +2 -2
- package/src/lib/errors/invalidSessionID.js.map +1 -1
- package/src/lib/errors/invalidTupleCount.js +2 -2
- package/src/lib/errors/invalidTupleCount.js.map +1 -1
- package/src/lib/errors/isolatedKeyError.d.ts +2 -2
- package/src/lib/errors/isolatedKeyError.d.ts.map +1 -1
- package/src/lib/errors/isolatedKeyError.js +7 -7
- package/src/lib/errors/isolatedKeyError.js.map +1 -1
- package/src/lib/errors/memberError.d.ts +2 -2
- package/src/lib/errors/memberError.d.ts.map +1 -1
- package/src/lib/errors/memberError.js +27 -27
- package/src/lib/errors/memberError.js.map +1 -1
- package/src/lib/errors/memoryTupleError.d.ts +2 -2
- package/src/lib/errors/memoryTupleError.d.ts.map +1 -1
- package/src/lib/errors/memoryTupleError.js +7 -7
- package/src/lib/errors/memoryTupleError.js.map +1 -1
- package/src/lib/errors/metadataMismatch.js +2 -2
- package/src/lib/errors/metadataMismatch.js.map +1 -1
- package/src/lib/errors/multiEncryptedError.d.ts +2 -2
- package/src/lib/errors/multiEncryptedError.d.ts.map +1 -1
- package/src/lib/errors/multiEncryptedError.js +11 -11
- package/src/lib/errors/multiEncryptedError.js.map +1 -1
- package/src/lib/errors/notImplemented.js +2 -2
- package/src/lib/errors/notImplemented.js.map +1 -1
- package/src/lib/errors/quorumError.d.ts +2 -2
- package/src/lib/errors/quorumError.d.ts.map +1 -1
- package/src/lib/errors/quorumError.js +8 -8
- package/src/lib/errors/quorumError.js.map +1 -1
- package/src/lib/errors/sealingError.d.ts +2 -2
- package/src/lib/errors/sealingError.d.ts.map +1 -1
- package/src/lib/errors/sealingError.js +9 -9
- package/src/lib/errors/sealingError.js.map +1 -1
- package/src/lib/errors/secureStorage.d.ts +2 -2
- package/src/lib/errors/secureStorage.d.ts.map +1 -1
- package/src/lib/errors/secureStorage.js +4 -4
- package/src/lib/errors/secureStorage.js.map +1 -1
- package/src/lib/errors/storeError.d.ts +2 -2
- package/src/lib/errors/storeError.d.ts.map +1 -1
- package/src/lib/errors/storeError.js +20 -20
- package/src/lib/errors/storeError.js.map +1 -1
- package/src/lib/errors/streamError.d.ts +2 -2
- package/src/lib/errors/streamError.d.ts.map +1 -1
- package/src/lib/errors/streamError.js +8 -8
- package/src/lib/errors/streamError.js.map +1 -1
- package/src/lib/errors/symmetricError.d.ts +2 -2
- package/src/lib/errors/symmetricError.d.ts.map +1 -1
- package/src/lib/errors/symmetricError.js +3 -3
- package/src/lib/errors/symmetricError.js.map +1 -1
- package/src/lib/errors/systemKeyringError.d.ts +2 -2
- package/src/lib/errors/systemKeyringError.d.ts.map +1 -1
- package/src/lib/errors/systemKeyringError.js +4 -4
- package/src/lib/errors/systemKeyringError.js.map +1 -1
- package/src/lib/errors/tupleError.d.ts +2 -2
- package/src/lib/errors/tupleError.d.ts.map +1 -1
- package/src/lib/errors/tupleError.js +13 -13
- package/src/lib/errors/tupleError.js.map +1 -1
- package/src/lib/errors/typedError.d.ts +2 -2
- package/src/lib/errors/typedError.d.ts.map +1 -1
- package/src/lib/errors/typedWithReasonError.d.ts +3 -3
- package/src/lib/errors/typedWithReasonError.d.ts.map +1 -1
- package/src/lib/errors/typedWithReasonError.js.map +1 -1
- package/src/lib/errors/userNotFound.js +2 -2
- package/src/lib/errors/userNotFound.js.map +1 -1
- package/src/lib/errors/whitenedError.d.ts +2 -2
- package/src/lib/errors/whitenedError.d.ts.map +1 -1
- package/src/lib/errors/whitenedError.js +5 -5
- package/src/lib/errors/whitenedError.js.map +1 -1
- package/src/lib/i18n/index.d.ts +2 -2
- package/src/lib/i18n/index.d.ts.map +1 -1
- package/src/lib/i18n/index.js +2 -2
- package/src/lib/i18n/index.js.map +1 -1
- package/src/lib/index.d.ts +4 -0
- package/src/lib/index.d.ts.map +1 -1
- package/src/lib/index.js +4 -0
- package/src/lib/index.js.map +1 -1
- package/src/lib/init.d.ts +10 -0
- package/src/lib/init.d.ts.map +1 -1
- package/src/lib/init.js +20 -0
- package/src/lib/init.js.map +1 -1
- package/src/lib/interfaces/blocks/headers/index.d.ts +1 -0
- package/src/lib/interfaces/blocks/headers/index.d.ts.map +1 -1
- package/src/lib/interfaces/blocks/headers/superCblHeader.d.ts +63 -0
- package/src/lib/interfaces/blocks/headers/superCblHeader.d.ts.map +1 -0
- package/src/lib/interfaces/{storage/superCbl.js → blocks/headers/superCblHeader.js} +1 -1
- package/src/lib/interfaces/blocks/headers/superCblHeader.js.map +1 -0
- package/src/lib/interfaces/constants.d.ts +29 -0
- package/src/lib/interfaces/constants.d.ts.map +1 -1
- package/src/lib/interfaces/serviceProvider.interface.d.ts +2 -1
- package/src/lib/interfaces/serviceProvider.interface.d.ts.map +1 -1
- package/src/lib/interfaces/services/cblServices.d.ts +148 -0
- package/src/lib/interfaces/services/cblServices.d.ts.map +1 -0
- package/src/lib/interfaces/services/cblServices.js +11 -0
- package/src/lib/interfaces/services/cblServices.js.map +1 -0
- package/src/lib/interfaces/services/index.d.ts +1 -0
- package/src/lib/interfaces/services/index.d.ts.map +1 -1
- package/src/lib/interfaces/storage/index.d.ts +0 -1
- package/src/lib/interfaces/storage/index.d.ts.map +1 -1
- package/src/lib/logging/blockLogger.d.ts +212 -0
- package/src/lib/logging/blockLogger.d.ts.map +1 -0
- package/src/lib/logging/blockLogger.js +327 -0
- package/src/lib/logging/blockLogger.js.map +1 -0
- package/src/lib/logging/index.d.ts +24 -0
- package/src/lib/logging/index.d.ts.map +1 -0
- package/src/lib/logging/index.js +27 -0
- package/src/lib/logging/index.js.map +1 -0
- package/src/lib/quorum.d.ts.map +1 -1
- package/src/lib/quorum.js +5 -4
- package/src/lib/quorum.js.map +1 -1
- package/src/lib/quorumDataRecord.d.ts.map +1 -1
- package/src/lib/quorumDataRecord.js +3 -2
- package/src/lib/quorumDataRecord.js.map +1 -1
- package/src/lib/schemas/network/networkDocumentSchema.d.ts.map +1 -1
- package/src/lib/schemas/network/networkDocumentSchema.js +9 -8
- package/src/lib/schemas/network/networkDocumentSchema.js.map +1 -1
- package/src/lib/schemas/quorumDocument.d.ts.map +1 -1
- package/src/lib/schemas/quorumDocument.js +6 -4
- package/src/lib/schemas/quorumDocument.js.map +1 -1
- package/src/lib/services/blockCapacity.service.d.ts.map +1 -1
- package/src/lib/services/blockCapacity.service.js +14 -5
- package/src/lib/services/blockCapacity.service.js.map +1 -1
- package/src/lib/services/blockFormatService.d.ts +56 -0
- package/src/lib/services/blockFormatService.d.ts.map +1 -0
- package/src/lib/services/blockFormatService.js +282 -0
- package/src/lib/services/blockFormatService.js.map +1 -0
- package/src/lib/services/blockService.d.ts +6 -0
- package/src/lib/services/blockService.d.ts.map +1 -1
- package/src/lib/services/blockService.js +120 -18
- package/src/lib/services/blockService.js.map +1 -1
- package/src/lib/services/cblService.d.ts +159 -1
- package/src/lib/services/cblService.d.ts.map +1 -1
- package/src/lib/services/cblService.js +498 -17
- package/src/lib/services/cblService.js.map +1 -1
- package/src/lib/services/index.d.ts +0 -2
- package/src/lib/services/index.d.ts.map +1 -1
- package/src/lib/services/index.js +0 -2
- package/src/lib/services/index.js.map +1 -1
- package/src/lib/services/member/memberCblService.d.ts.map +1 -1
- package/src/lib/services/member/memberCblService.js +11 -8
- package/src/lib/services/member/memberCblService.js.map +1 -1
- package/src/lib/services/memberStore.d.ts.map +1 -1
- package/src/lib/services/memberStore.js +20 -28
- package/src/lib/services/memberStore.js.map +1 -1
- package/src/lib/services/sealing.service.d.ts.map +1 -1
- package/src/lib/services/sealing.service.js +2 -1
- package/src/lib/services/sealing.service.js.map +1 -1
- package/src/lib/services/service.provider.d.ts.map +1 -1
- package/src/lib/services/service.provider.js +3 -11
- package/src/lib/services/service.provider.js.map +1 -1
- package/src/lib/strings/englishUs.js +392 -392
- package/src/lib/strings/englishUs.js.map +1 -1
- package/src/lib/test/service.initializer.helper.d.ts +2 -1
- package/src/lib/test/service.initializer.helper.d.ts.map +1 -1
- package/src/lib/test/service.initializer.helper.js +11 -15
- package/src/lib/test/service.initializer.helper.js.map +1 -1
- package/src/lib/utils/constantTime.d.ts +112 -0
- package/src/lib/utils/constantTime.d.ts.map +1 -0
- package/src/lib/utils/constantTime.js +180 -0
- package/src/lib/utils/constantTime.js.map +1 -0
- package/src/lib/utils/constantTimeXor.d.ts +76 -0
- package/src/lib/utils/constantTimeXor.d.ts.map +1 -0
- package/src/lib/utils/constantTimeXor.js +122 -0
- package/src/lib/utils/constantTimeXor.js.map +1 -0
- package/src/lib/utils/dateUtils.d.ts +67 -0
- package/src/lib/utils/dateUtils.d.ts.map +1 -0
- package/src/lib/utils/dateUtils.js +136 -0
- package/src/lib/utils/dateUtils.js.map +1 -0
- package/src/lib/utils/index.d.ts +57 -0
- package/src/lib/utils/index.d.ts.map +1 -1
- package/src/lib/utils/index.js +69 -0
- package/src/lib/utils/index.js.map +1 -1
- package/src/lib/utils/typeGuards.d.ts +102 -0
- package/src/lib/utils/typeGuards.d.ts.map +1 -0
- package/src/lib/utils/typeGuards.js +244 -0
- package/src/lib/utils/typeGuards.js.map +1 -0
- package/src/lib/enumerations/stringNames.d.ts.map +0 -1
- package/src/lib/enumerations/stringNames.js +0 -436
- package/src/lib/enumerations/stringNames.js.map +0 -1
- package/src/lib/errors/superCbl.d.ts +0 -24
- package/src/lib/errors/superCbl.d.ts.map +0 -1
- package/src/lib/errors/superCbl.js +0 -43
- package/src/lib/errors/superCbl.js.map +0 -1
- package/src/lib/interfaces/storage/superCbl.d.ts +0 -102
- package/src/lib/interfaces/storage/superCbl.d.ts.map +0 -1
- package/src/lib/interfaces/storage/superCbl.js.map +0 -1
- package/src/lib/services/jsonCblCapacity.service.d.ts +0 -80
- package/src/lib/services/jsonCblCapacity.service.d.ts.map +0 -1
- package/src/lib/services/jsonCblCapacity.service.js +0 -147
- package/src/lib/services/jsonCblCapacity.service.js.map +0 -1
- package/src/lib/services/superCbl.service.d.ts +0 -68
- package/src/lib/services/superCbl.service.d.ts.map +0 -1
- package/src/lib/services/superCbl.service.js +0 -213
- package/src/lib/services/superCbl.service.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quorumDataRecord.d.ts","sourceRoot":"","sources":["../../../../brightchain-lib/src/lib/quorumDataRecord.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,
|
|
1
|
+
{"version":3,"file":"quorumDataRecord.d.ts","sourceRoot":"","sources":["../../../../brightchain-lib/src/lib/quorumDataRecord.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EAGZ,MAAM,EACN,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EAEvB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,qBAAa,gBAAgB,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU;IAC/D,SAAgB,eAAe,EAAE,eAAe,CAAyB;IACzE,SAAgB,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,CAA6B;IAC5E,SAAgB,gBAAgB,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAE9D,SAAgB,EAAE,EAAE,GAAG,CAAC;IACxB,SAAgB,aAAa,EAAE,UAAU,CAAC;IAC1C,SAAgB,yBAAyB,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACzE;;OAEG;IACH,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IACnC,SAAgB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACrC,SAAgB,SAAS,EAAE,mBAAmB,CAAC;IAC/C,SAAgB,SAAS,EAAE,GAAG,EAAE,CAAC;IACjC,SAAgB,cAAc,EAAE,MAAM,CAAC;IACvC,SAAgB,WAAW,EAAE,IAAI,CAAC;IAClC,SAAgB,WAAW,EAAE,IAAI,CAAC;gBAGhC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EACpB,SAAS,EAAE,GAAG,EAAE,EAChB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,UAAU,EACzB,yBAAyB,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,EACxD,QAAQ,CAAC,EAAE,QAAQ,EACnB,SAAS,CAAC,EAAE,mBAAmB,EAC/B,EAAE,CAAC,EAAE,GAAG,EACR,WAAW,CAAC,EAAE,IAAI,EAClB,WAAW,CAAC,EAAE,IAAI,EAClB,gBAAgB,CAAC,EAAE,sBAAsB,CAAC,GAAG,CAAC,EAC9C,YAAY,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC;IAuD3B,KAAK,IAAI,mBAAmB;WA2BrB,OAAO,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU,EACvD,GAAG,EAAE,mBAAmB,EACxB,WAAW,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,EAC3C,gBAAgB,CAAC,EAAE,sBAAsB,CAAC,GAAG,CAAC,EAC9C,YAAY,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,GAC/B,gBAAgB,CAAC,GAAG,CAAC;IA8BjB,MAAM,IAAI,MAAM;WAGT,QAAQ,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU,EACxD,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,EAC3C,gBAAgB,CAAC,EAAE,sBAAsB,CAAC,GAAG,CAAC,EAC9C,YAAY,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,GAC/B,gBAAgB,CAAC,GAAG,CAAC;CASzB"}
|
|
@@ -3,12 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.QuorumDataRecord = void 0;
|
|
4
4
|
const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
|
|
5
5
|
const browserConfig_1 = require("./browserConfig");
|
|
6
|
+
const init_1 = require("./init");
|
|
6
7
|
const checksum_service_1 = require("./services/checksum.service");
|
|
7
8
|
class QuorumDataRecord {
|
|
8
9
|
constructor(creator, memberIDs, sharesRequired, encryptedData, encryptedSharesByMemberId, checksum, signature, id, dateCreated, dateUpdated, enhancedProvider, eciesService) {
|
|
9
10
|
this.checksumService = new checksum_service_1.ChecksumService();
|
|
10
11
|
this.eciesService = (0, browserConfig_1.createECIESService)();
|
|
11
|
-
this.enhancedProvider = enhancedProvider ?? (0,
|
|
12
|
+
this.enhancedProvider = enhancedProvider ?? (0, init_1.getBrightChainIdProvider)();
|
|
12
13
|
this.eciesService = eciesService ?? (0, browserConfig_1.createECIESService)();
|
|
13
14
|
if (id !== undefined) {
|
|
14
15
|
this.id = id;
|
|
@@ -72,7 +73,7 @@ class QuorumDataRecord {
|
|
|
72
73
|
};
|
|
73
74
|
}
|
|
74
75
|
static fromDto(dto, fetchMember, enhancedProvider, eciesService) {
|
|
75
|
-
const enhancedProviderToUse = enhancedProvider ?? (0,
|
|
76
|
+
const enhancedProviderToUse = enhancedProvider ?? (0, init_1.getBrightChainIdProvider)();
|
|
76
77
|
const eciesServiceToUse = eciesService ?? (0, browserConfig_1.createECIESService)();
|
|
77
78
|
const checksumService = new checksum_service_1.ChecksumService();
|
|
78
79
|
const encryptedSharesByMemberId = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quorumDataRecord.js","sourceRoot":"","sources":["../../../../brightchain-lib/src/lib/quorumDataRecord.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"quorumDataRecord.js","sourceRoot":"","sources":["../../../../brightchain-lib/src/lib/quorumDataRecord.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"networkDocumentSchema.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/schemas/network/networkDocumentSchema.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"networkDocumentSchema.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/schemas/network/networkDocumentSchema.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAO1E,OAAO,EAAE,gBAAgB,EAAmB,MAAM,mBAAmB,CAAC;AAMtE;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,gBAAgB,CAAC,eAAe,CAyGnE,CAAC;AAEF;;GAEG;AACH,eAAe,qBAAqB,CAAC"}
|
|
@@ -3,11 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.NetworkDocumentSchema = void 0;
|
|
4
4
|
const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
|
|
5
5
|
const bufferUtils_1 = require("../../bufferUtils");
|
|
6
|
-
const
|
|
6
|
+
const brightChainStrings_1 = require("../../enumerations/brightChainStrings");
|
|
7
7
|
const failedToHydrate_1 = require("../../errors/failedToHydrate");
|
|
8
8
|
const failedToSerialize_1 = require("../../errors/failedToSerialize");
|
|
9
9
|
const invalidIDFormat_1 = require("../../errors/invalidIDFormat");
|
|
10
10
|
const i18n_1 = require("../../i18n");
|
|
11
|
+
const service_provider_1 = require("../../services/service.provider");
|
|
11
12
|
const isString = (value) => typeof value === 'string';
|
|
12
13
|
const isStringArray = (value) => Array.isArray(value) && value.every(isString);
|
|
13
14
|
/**
|
|
@@ -49,13 +50,13 @@ exports.NetworkDocumentSchema = {
|
|
|
49
50
|
return JSON.parse(json);
|
|
50
51
|
}
|
|
51
52
|
catch {
|
|
52
|
-
throw new failedToSerialize_1.FailedToSerializeError((0, i18n_1.translate)(
|
|
53
|
+
throw new failedToSerialize_1.FailedToSerializeError((0, i18n_1.translate)(brightChainStrings_1.default.Error_InvalidCreator));
|
|
53
54
|
}
|
|
54
55
|
},
|
|
55
56
|
hydrate: (value) => {
|
|
56
57
|
if (!isString(value) && typeof value !== 'object')
|
|
57
|
-
throw new failedToHydrate_1.FailedToHydrateError((0, i18n_1.translate)(
|
|
58
|
-
return ecies_lib_1.Member.fromJson(typeof value === 'string' ? value : JSON.stringify(value));
|
|
58
|
+
throw new failedToHydrate_1.FailedToHydrateError((0, i18n_1.translate)(brightChainStrings_1.default.Error_InvalidCreator));
|
|
59
|
+
return ecies_lib_1.Member.fromJson(typeof value === 'string' ? value : JSON.stringify(value), service_provider_1.ServiceProvider.getInstance().eciesService);
|
|
59
60
|
},
|
|
60
61
|
},
|
|
61
62
|
signature: {
|
|
@@ -64,7 +65,7 @@ exports.NetworkDocumentSchema = {
|
|
|
64
65
|
serialize: (value) => (0, bufferUtils_1.uint8ArrayToBase64)(value),
|
|
65
66
|
hydrate: (value) => {
|
|
66
67
|
if (!isString(value))
|
|
67
|
-
throw new failedToHydrate_1.FailedToHydrateError((0, i18n_1.translate)(
|
|
68
|
+
throw new failedToHydrate_1.FailedToHydrateError((0, i18n_1.translate)(brightChainStrings_1.default.Error_InvalidSignature));
|
|
68
69
|
return (0, bufferUtils_1.base64ToUint8Array)(value);
|
|
69
70
|
},
|
|
70
71
|
},
|
|
@@ -74,7 +75,7 @@ exports.NetworkDocumentSchema = {
|
|
|
74
75
|
serialize: (value) => (0, bufferUtils_1.uint8ArrayToBase64)(value),
|
|
75
76
|
hydrate: (value) => {
|
|
76
77
|
if (!isString(value))
|
|
77
|
-
throw new failedToHydrate_1.FailedToHydrateError((0, i18n_1.translate)(
|
|
78
|
+
throw new failedToHydrate_1.FailedToHydrateError((0, i18n_1.translate)(brightChainStrings_1.default.Error_InvalidChecksum));
|
|
78
79
|
return (0, bufferUtils_1.base64ToUint8Array)(value);
|
|
79
80
|
},
|
|
80
81
|
},
|
|
@@ -97,12 +98,12 @@ exports.NetworkDocumentSchema = {
|
|
|
97
98
|
references: {
|
|
98
99
|
type: Array,
|
|
99
100
|
required: false,
|
|
100
|
-
serialize: (value) => value?.map((v) => v.
|
|
101
|
+
serialize: (value) => value?.map((v) => v.asShortHexGuid) ?? null,
|
|
101
102
|
hydrate: (value) => {
|
|
102
103
|
if (value === null || value === undefined)
|
|
103
104
|
return undefined;
|
|
104
105
|
if (!isStringArray(value))
|
|
105
|
-
throw new failedToHydrate_1.FailedToHydrateError((0, i18n_1.translate)(
|
|
106
|
+
throw new failedToHydrate_1.FailedToHydrateError((0, i18n_1.translate)(brightChainStrings_1.default.Error_InvalidReferences));
|
|
106
107
|
return value.map((v) => ecies_lib_1.GuidUint8Array.hydrate(v));
|
|
107
108
|
},
|
|
108
109
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"networkDocumentSchema.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/schemas/network/networkDocumentSchema.ts"],"names":[],"mappings":";;;AAAA,0DAOoC;AACpC,mDAA2E;AAE3E,
|
|
1
|
+
{"version":3,"file":"networkDocumentSchema.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/schemas/network/networkDocumentSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quorumDocument.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/schemas/quorumDocument.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"quorumDocument.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/schemas/quorumDocument.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EAEN,UAAU,EAGX,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAK9D,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAGnE,qBAAa,oBAAoB,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU;IAC5D,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAGjC,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAQ5C,WAAW,CAAC,QAAQ,EAAE,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IAqBvC,MAAM,EAAE,gBAAgB,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CA+EnD;CACH"}
|
|
@@ -5,7 +5,9 @@ const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
|
|
|
5
5
|
const paillier_bigint_1 = require("paillier-bigint");
|
|
6
6
|
const bufferUtils_1 = require("../bufferUtils");
|
|
7
7
|
const notImplemented_1 = require("../errors/notImplemented");
|
|
8
|
+
const init_1 = require("../init");
|
|
8
9
|
const quorumDataRecord_1 = require("../quorumDataRecord");
|
|
10
|
+
const service_provider_1 = require("../services/service.provider");
|
|
9
11
|
const types_1 = require("../types");
|
|
10
12
|
class QuorumDocumentSchema {
|
|
11
13
|
constructor() {
|
|
@@ -51,12 +53,12 @@ class QuorumDocumentSchema {
|
|
|
51
53
|
memberIDs: {
|
|
52
54
|
type: Array,
|
|
53
55
|
required: true,
|
|
54
|
-
serialize: (value) => value.map((id) => (0, ecies_lib_1.
|
|
56
|
+
serialize: (value) => value.map((id) => (0, ecies_lib_1.uint8ArrayToHex)((0, init_1.getBrightChainIdProvider)().toBytes(id))),
|
|
55
57
|
hydrate: (value) => {
|
|
56
58
|
if (!Array.isArray(value))
|
|
57
59
|
throw new Error('Invalid member IDs format');
|
|
58
|
-
const provider = (0,
|
|
59
|
-
return value.map((id) => provider.
|
|
60
|
+
const provider = (0, init_1.getBrightChainIdProvider)();
|
|
61
|
+
return value.map((id) => provider.fromBytes((0, ecies_lib_1.hexToUint8Array)(id)));
|
|
60
62
|
},
|
|
61
63
|
},
|
|
62
64
|
sharesRequired: {
|
|
@@ -114,7 +116,7 @@ class QuorumDocumentSchema {
|
|
|
114
116
|
dateCreated: new Date().toISOString(),
|
|
115
117
|
dateUpdated: new Date().toISOString(),
|
|
116
118
|
};
|
|
117
|
-
return ecies_lib_1.Member.fromJson(JSON.stringify(storage));
|
|
119
|
+
return ecies_lib_1.Member.fromJson(JSON.stringify(storage), service_provider_1.ServiceProvider.getInstance().eciesService);
|
|
118
120
|
}
|
|
119
121
|
}
|
|
120
122
|
exports.QuorumDocumentSchema = QuorumDocumentSchema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quorumDocument.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/schemas/quorumDocument.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"quorumDocument.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/schemas/quorumDocument.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockCapacity.service.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/services/blockCapacity.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAO7E,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EAErB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD;;GAEG;AACH,qBAAa,uBAAuB,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU;IAEpE,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,EAC3B,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC;IAGlD;;;;;;;;;OASG;IACI,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB;IA4D5E;;;;;;;;;;OAUG;IACH,OAAO,CAAC,0BAA0B;IAoElC;;;;;;;;OAQG;IACH,OAAO,CAAC,2BAA2B;
|
|
1
|
+
{"version":3,"file":"blockCapacity.service.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/services/blockCapacity.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAO7E,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EAErB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD;;GAEG;AACH,qBAAa,uBAAuB,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU;IAEpE,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,EAC3B,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC;IAGlD;;;;;;;;;OASG;IACI,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB;IA4D5E;;;;;;;;;;OAUG;IACH,OAAO,CAAC,0BAA0B;IAoElC;;;;;;;;OAQG;IACH,OAAO,CAAC,2BAA2B;IA+DnC;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IAsBvB;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAqBlC;;OAEG;IACH,OAAO,CAAC,4BAA4B;CAoBrC"}
|
|
@@ -158,12 +158,21 @@ class BlockCapacityCalculator {
|
|
|
158
158
|
if (params.encryptionType === blockEncryptionType_1.BlockEncryptionType.MultiRecipient) {
|
|
159
159
|
validator_1.Validator.validateRecipientCount(params.recipientCount, params.encryptionType, 'calculateCapacity');
|
|
160
160
|
}
|
|
161
|
+
// Add encryption type byte to type-specific overhead
|
|
161
162
|
details.typeSpecificOverhead += ecies_lib_1.ECIES.ENCRYPTION_TYPE_SIZE;
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
163
|
+
if (params.encryptionType === blockEncryptionType_1.BlockEncryptionType.MultiRecipient) {
|
|
164
|
+
// Multi-recipient encryption uses ECIES MULTIPLE format
|
|
165
|
+
// Overhead includes: header + per-recipient entries
|
|
166
|
+
details.encryptionOverhead =
|
|
167
|
+
this.eciesService.calculateECIESMultipleRecipientOverhead(params.recipientCount ?? 0, true) - ecies_lib_1.ECIES.MULTIPLE.FIXED_OVERHEAD_SIZE;
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
// Single-recipient encryption uses ECIES WITH_LENGTH format
|
|
171
|
+
// Overhead = recipient ID (idProvider.byteLength) + ECIES WITH_LENGTH overhead (72 bytes)
|
|
172
|
+
const idSize = this.eciesService.idProvider.byteLength;
|
|
173
|
+
details.encryptionOverhead =
|
|
174
|
+
idSize + ecies_lib_1.ECIES.WITH_LENGTH.FIXED_OVERHEAD_SIZE;
|
|
175
|
+
}
|
|
167
176
|
}
|
|
168
177
|
}
|
|
169
178
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockCapacity.service.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/services/blockCapacity.service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"blockCapacity.service.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/services/blockCapacity.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block Format Detection Service
|
|
3
|
+
*
|
|
4
|
+
* This service provides functionality for detecting and validating block formats
|
|
5
|
+
* based on magic bytes, version, and CRC8 integrity checks.
|
|
6
|
+
*
|
|
7
|
+
* @module services/blockFormatService
|
|
8
|
+
*/
|
|
9
|
+
import { StructuredBlockType } from '../constants';
|
|
10
|
+
import { BlockType } from '../enumerations/blockType';
|
|
11
|
+
/**
|
|
12
|
+
* Result of block format detection
|
|
13
|
+
*/
|
|
14
|
+
export interface BlockFormatResult {
|
|
15
|
+
/**
|
|
16
|
+
* Whether the block format is valid
|
|
17
|
+
*/
|
|
18
|
+
isValid: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* The detected block type
|
|
21
|
+
*/
|
|
22
|
+
blockType: BlockType | StructuredBlockType;
|
|
23
|
+
/**
|
|
24
|
+
* The header version (for structured blocks)
|
|
25
|
+
*/
|
|
26
|
+
version: number;
|
|
27
|
+
/**
|
|
28
|
+
* Error message if format is invalid
|
|
29
|
+
*/
|
|
30
|
+
error?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Whether this is a structured block (has 0xBC prefix)
|
|
33
|
+
*/
|
|
34
|
+
isStructured?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Whether this appears to be encrypted data (has 0x04 ECIES magic)
|
|
37
|
+
*/
|
|
38
|
+
isEncrypted?: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Detect the format of block data and validate header integrity
|
|
42
|
+
*
|
|
43
|
+
* @param data - The block data to analyze
|
|
44
|
+
* @param creatorIdLength - Optional override for creator ID length (for testing)
|
|
45
|
+
* @returns BlockFormatResult with detection details
|
|
46
|
+
*
|
|
47
|
+
* @remarks
|
|
48
|
+
* Detection logic:
|
|
49
|
+
* - If starts with 0xBC: Structured BrightChain block (validate CRC8)
|
|
50
|
+
* - If starts with 0x04: ECIES encrypted data
|
|
51
|
+
* - Otherwise: Raw/unknown data
|
|
52
|
+
*
|
|
53
|
+
* @see Requirements 9.6, 9.7, 9.8, 9.9
|
|
54
|
+
*/
|
|
55
|
+
export declare function detectBlockFormat(data: Uint8Array, creatorIdLength?: number): BlockFormatResult;
|
|
56
|
+
//# sourceMappingURL=blockFormatService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockFormatService.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/services/blockFormatService.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAgB,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGtD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,SAAS,EAAE,SAAS,GAAG,mBAAmB,CAAC;IAE3C;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAgBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,eAAe,CAAC,EAAE,MAAM,GACvB,iBAAiB,CA+FnB"}
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Block Format Detection Service
|
|
4
|
+
*
|
|
5
|
+
* This service provides functionality for detecting and validating block formats
|
|
6
|
+
* based on magic bytes, version, and CRC8 integrity checks.
|
|
7
|
+
*
|
|
8
|
+
* @module services/blockFormatService
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.detectBlockFormat = detectBlockFormat;
|
|
12
|
+
const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
|
|
13
|
+
const constants_1 = require("../constants");
|
|
14
|
+
const blockType_1 = require("../enumerations/blockType");
|
|
15
|
+
const init_1 = require("../init");
|
|
16
|
+
/**
|
|
17
|
+
* Get the creator ID length from the ID provider
|
|
18
|
+
* This ensures we use the correct dynamic length instead of hardcoded values
|
|
19
|
+
*/
|
|
20
|
+
function getCreatorIdLength() {
|
|
21
|
+
if (!(0, init_1.isLibraryInitialized)()) {
|
|
22
|
+
// Default to 16 bytes (GuidV4) if library not initialized
|
|
23
|
+
// This allows tests to work without full initialization
|
|
24
|
+
return 16;
|
|
25
|
+
}
|
|
26
|
+
const idProvider = (0, init_1.getBrightChainIdProvider)();
|
|
27
|
+
return idProvider.byteLength;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Detect the format of block data and validate header integrity
|
|
31
|
+
*
|
|
32
|
+
* @param data - The block data to analyze
|
|
33
|
+
* @param creatorIdLength - Optional override for creator ID length (for testing)
|
|
34
|
+
* @returns BlockFormatResult with detection details
|
|
35
|
+
*
|
|
36
|
+
* @remarks
|
|
37
|
+
* Detection logic:
|
|
38
|
+
* - If starts with 0xBC: Structured BrightChain block (validate CRC8)
|
|
39
|
+
* - If starts with 0x04: ECIES encrypted data
|
|
40
|
+
* - Otherwise: Raw/unknown data
|
|
41
|
+
*
|
|
42
|
+
* @see Requirements 9.6, 9.7, 9.8, 9.9
|
|
43
|
+
*/
|
|
44
|
+
function detectBlockFormat(data, creatorIdLength) {
|
|
45
|
+
// Get creator ID length from provider if not specified
|
|
46
|
+
const idLength = creatorIdLength ?? getCreatorIdLength();
|
|
47
|
+
// Check minimum length for header prefix
|
|
48
|
+
if (data.length < 4) {
|
|
49
|
+
return {
|
|
50
|
+
isValid: false,
|
|
51
|
+
blockType: blockType_1.BlockType.Unknown,
|
|
52
|
+
version: 0,
|
|
53
|
+
error: 'Data too short for structured block header (minimum 4 bytes required)',
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
// Check for BrightChain structured block magic prefix
|
|
57
|
+
if (data[0] === constants_1.BLOCK_HEADER.MAGIC_PREFIX) {
|
|
58
|
+
const structuredBlockType = data[1];
|
|
59
|
+
const version = data[2];
|
|
60
|
+
const storedCrc8 = data[3];
|
|
61
|
+
// Validate block type
|
|
62
|
+
const validTypes = [
|
|
63
|
+
constants_1.StructuredBlockType.CBL,
|
|
64
|
+
constants_1.StructuredBlockType.SuperCBL,
|
|
65
|
+
constants_1.StructuredBlockType.ExtendedCBL,
|
|
66
|
+
constants_1.StructuredBlockType.MessageCBL,
|
|
67
|
+
];
|
|
68
|
+
if (!validTypes.includes(structuredBlockType)) {
|
|
69
|
+
return {
|
|
70
|
+
isValid: false,
|
|
71
|
+
blockType: blockType_1.BlockType.Unknown,
|
|
72
|
+
version,
|
|
73
|
+
error: `Invalid structured block type: 0x${structuredBlockType.toString(16).padStart(2, '0')}`,
|
|
74
|
+
isStructured: true,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
// Get header end offset based on block type
|
|
78
|
+
const headerEnd = getHeaderEndOffset(data, structuredBlockType, version, idLength);
|
|
79
|
+
if (headerEnd < 0) {
|
|
80
|
+
return {
|
|
81
|
+
isValid: false,
|
|
82
|
+
blockType: mapStructuredToBlockType(structuredBlockType),
|
|
83
|
+
version,
|
|
84
|
+
error: 'Cannot determine header size - data may be truncated',
|
|
85
|
+
isStructured: true,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
// Compute CRC8 over header content (after CRC8 field, before signature)
|
|
89
|
+
// Signature is always the last 64 bytes of the header
|
|
90
|
+
const signatureSize = 64; // ECDSA signature
|
|
91
|
+
const crcData = data.subarray(4, headerEnd - signatureSize);
|
|
92
|
+
const crcService = new ecies_lib_1.CrcService();
|
|
93
|
+
const computedCrc8Buffer = crcService.crc8(crcData);
|
|
94
|
+
const computedCrc8 = computedCrc8Buffer[0];
|
|
95
|
+
if (storedCrc8 !== computedCrc8) {
|
|
96
|
+
return {
|
|
97
|
+
isValid: false,
|
|
98
|
+
blockType: mapStructuredToBlockType(structuredBlockType),
|
|
99
|
+
version,
|
|
100
|
+
error: `CRC8 mismatch - header may be corrupted (expected 0x${computedCrc8.toString(16).padStart(2, '0')}, got 0x${storedCrc8.toString(16).padStart(2, '0')})`,
|
|
101
|
+
isStructured: true,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
// Valid structured block
|
|
105
|
+
return {
|
|
106
|
+
isValid: true,
|
|
107
|
+
blockType: mapStructuredToBlockType(structuredBlockType),
|
|
108
|
+
version,
|
|
109
|
+
isStructured: true,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
// Check if it looks like encrypted data (ECIES format)
|
|
113
|
+
if (data[0] === ecies_lib_1.ECIES.PUBLIC_KEY_MAGIC) {
|
|
114
|
+
return {
|
|
115
|
+
isValid: false,
|
|
116
|
+
blockType: blockType_1.BlockType.Unknown,
|
|
117
|
+
version: 0,
|
|
118
|
+
error: 'Data appears to be ECIES encrypted - decrypt before parsing',
|
|
119
|
+
isEncrypted: true,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
// Unknown format - could be raw data
|
|
123
|
+
return {
|
|
124
|
+
isValid: false,
|
|
125
|
+
blockType: blockType_1.BlockType.Unknown,
|
|
126
|
+
version: 0,
|
|
127
|
+
error: 'Unknown block format - missing 0xBC magic prefix (may be raw data)',
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Map StructuredBlockType to BlockType enum
|
|
132
|
+
*/
|
|
133
|
+
function mapStructuredToBlockType(structuredType) {
|
|
134
|
+
switch (structuredType) {
|
|
135
|
+
case constants_1.StructuredBlockType.CBL:
|
|
136
|
+
return blockType_1.BlockType.ConstituentBlockList;
|
|
137
|
+
case constants_1.StructuredBlockType.ExtendedCBL:
|
|
138
|
+
return blockType_1.BlockType.ExtendedConstituentBlockListBlock;
|
|
139
|
+
case constants_1.StructuredBlockType.MessageCBL:
|
|
140
|
+
// MessageCBL doesn't have a direct BlockType mapping yet
|
|
141
|
+
// Return CBL as the base type
|
|
142
|
+
return blockType_1.BlockType.ConstituentBlockList;
|
|
143
|
+
case constants_1.StructuredBlockType.SuperCBL:
|
|
144
|
+
// SuperCBL doesn't have a BlockType enum value yet
|
|
145
|
+
// Return CBL as the base type
|
|
146
|
+
return blockType_1.BlockType.ConstituentBlockList;
|
|
147
|
+
default:
|
|
148
|
+
return blockType_1.BlockType.Unknown;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Get the end offset of the header based on block type and version
|
|
153
|
+
*
|
|
154
|
+
* @param data - The block data
|
|
155
|
+
* @param blockType - The structured block type
|
|
156
|
+
* @param version - The header version
|
|
157
|
+
* @param idLength - The creator ID length from the ID provider
|
|
158
|
+
* @returns The offset where the header ends, or -1 if cannot be determined
|
|
159
|
+
*/
|
|
160
|
+
function getHeaderEndOffset(data, blockType, version, idLength) {
|
|
161
|
+
// Version check
|
|
162
|
+
if (version !== constants_1.BLOCK_HEADER.VERSION) {
|
|
163
|
+
// Unknown version - cannot determine header size
|
|
164
|
+
return -1;
|
|
165
|
+
}
|
|
166
|
+
// Calculate base header size dynamically using ID provider length
|
|
167
|
+
// Prefix(4) + CreatorId(idLength) + DateCreated(8) + AddressCount(4) + TupleSize(1) +
|
|
168
|
+
// OriginalDataLength(8) + OriginalChecksum(64) + IsExtendedHeader(1) + Signature(64)
|
|
169
|
+
const baseHeaderSize = 4 + idLength + 8 + 4 + 1 + 8 + 64 + 1 + 64;
|
|
170
|
+
// Minimum header check
|
|
171
|
+
if (data.length < baseHeaderSize) {
|
|
172
|
+
return -1;
|
|
173
|
+
}
|
|
174
|
+
switch (blockType) {
|
|
175
|
+
case constants_1.StructuredBlockType.CBL:
|
|
176
|
+
// Base CBL header with dynamic creator ID length
|
|
177
|
+
return baseHeaderSize;
|
|
178
|
+
case constants_1.StructuredBlockType.ExtendedCBL:
|
|
179
|
+
// Extended CBL has variable-length file name and MIME type
|
|
180
|
+
return parseExtendedHeaderEnd(data, idLength);
|
|
181
|
+
case constants_1.StructuredBlockType.MessageCBL:
|
|
182
|
+
// Message CBL has variable-length fields
|
|
183
|
+
return parseMessageHeaderEnd(data, idLength);
|
|
184
|
+
case constants_1.StructuredBlockType.SuperCBL:
|
|
185
|
+
// SuperCBL header structure
|
|
186
|
+
// Prefix(4) + CreatorId(idLength) + DateCreated(8) + SubCblCount(4) + TotalBlockCount(4) +
|
|
187
|
+
// Depth(2) + OriginalDataLength(8) + OriginalChecksum(64) + Signature(64)
|
|
188
|
+
return 4 + idLength + 8 + 4 + 4 + 2 + 8 + 64 + 64;
|
|
189
|
+
default:
|
|
190
|
+
return -1;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Parse extended CBL header to find the end offset
|
|
195
|
+
*/
|
|
196
|
+
function parseExtendedHeaderEnd(data, idLength) {
|
|
197
|
+
try {
|
|
198
|
+
// Base header ends at offset where extended fields start (before signature)
|
|
199
|
+
// Prefix(4) + CreatorId(idLength) + DateCreated(8) + AddressCount(4) + TupleSize(1) +
|
|
200
|
+
// OriginalDataLength(8) + OriginalChecksum(64) + IsExtendedHeader(1)
|
|
201
|
+
const baseHeaderEnd = 4 + idLength + 8 + 4 + 1 + 8 + 64 + 1;
|
|
202
|
+
if (data.length < baseHeaderEnd + 2) {
|
|
203
|
+
return -1;
|
|
204
|
+
}
|
|
205
|
+
// Read file name length (2 bytes, big-endian)
|
|
206
|
+
const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
|
|
207
|
+
const fileNameLength = view.getUint16(baseHeaderEnd, false);
|
|
208
|
+
const fileNameEnd = baseHeaderEnd + 2 + fileNameLength;
|
|
209
|
+
if (data.length < fileNameEnd + 1) {
|
|
210
|
+
return -1;
|
|
211
|
+
}
|
|
212
|
+
// Read MIME type length (1 byte)
|
|
213
|
+
const mimeTypeLength = data[fileNameEnd];
|
|
214
|
+
const mimeTypeEnd = fileNameEnd + 1 + mimeTypeLength;
|
|
215
|
+
if (data.length < mimeTypeEnd + 64) {
|
|
216
|
+
return -1;
|
|
217
|
+
}
|
|
218
|
+
// Signature is at the end
|
|
219
|
+
return mimeTypeEnd + 64;
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
222
|
+
return -1;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Parse message CBL header to find the end offset
|
|
227
|
+
*/
|
|
228
|
+
function parseMessageHeaderEnd(data, idLength) {
|
|
229
|
+
try {
|
|
230
|
+
// Base header ends at offset where message fields start
|
|
231
|
+
// Prefix(4) + CreatorId(idLength) + DateCreated(8) + AddressCount(4) + TupleSize(1) +
|
|
232
|
+
// OriginalDataLength(8) + OriginalChecksum(64) + IsExtendedHeader(1)
|
|
233
|
+
const baseHeaderEnd = 4 + idLength + 8 + 4 + 1 + 8 + 64 + 1;
|
|
234
|
+
if (data.length < baseHeaderEnd + 2) {
|
|
235
|
+
return -1;
|
|
236
|
+
}
|
|
237
|
+
const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
|
|
238
|
+
let offset = baseHeaderEnd;
|
|
239
|
+
// Skip message type (2-byte length + content)
|
|
240
|
+
const messageTypeLength = view.getUint16(offset, false);
|
|
241
|
+
offset += 2 + messageTypeLength;
|
|
242
|
+
if (data.length < offset + 2) {
|
|
243
|
+
return -1;
|
|
244
|
+
}
|
|
245
|
+
// Skip sender ID (2-byte length + content)
|
|
246
|
+
const senderIdLength = view.getUint16(offset, false);
|
|
247
|
+
offset += 2 + senderIdLength;
|
|
248
|
+
if (data.length < offset + 2) {
|
|
249
|
+
return -1;
|
|
250
|
+
}
|
|
251
|
+
// Skip recipients (2-byte count + variable-length entries)
|
|
252
|
+
const recipientCount = view.getUint16(offset, false);
|
|
253
|
+
offset += 2;
|
|
254
|
+
for (let i = 0; i < recipientCount; i++) {
|
|
255
|
+
if (data.length < offset + 2) {
|
|
256
|
+
return -1;
|
|
257
|
+
}
|
|
258
|
+
const recipientLength = view.getUint16(offset, false);
|
|
259
|
+
offset += 2 + recipientLength;
|
|
260
|
+
}
|
|
261
|
+
if (data.length < offset + 1) {
|
|
262
|
+
return -1;
|
|
263
|
+
}
|
|
264
|
+
// Skip priority (1 byte)
|
|
265
|
+
offset += 1;
|
|
266
|
+
if (data.length < offset + 1) {
|
|
267
|
+
return -1;
|
|
268
|
+
}
|
|
269
|
+
// Skip encryption scheme (1-byte length + content)
|
|
270
|
+
const encryptionSchemeLength = data[offset];
|
|
271
|
+
offset += 1 + encryptionSchemeLength;
|
|
272
|
+
if (data.length < offset + 64) {
|
|
273
|
+
return -1;
|
|
274
|
+
}
|
|
275
|
+
// Signature is at the end
|
|
276
|
+
return offset + 64;
|
|
277
|
+
}
|
|
278
|
+
catch {
|
|
279
|
+
return -1;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
//# sourceMappingURL=blockFormatService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockFormatService.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/services/blockFormatService.ts"],"names":[],"mappings":"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"}
|