postchain-client 1.22.0 → 2.0.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/README.md +5 -0
- package/built/cjs/index.js +2346 -2600
- package/built/cjs/index.js.map +1 -1
- package/built/esm/index.js +32402 -32650
- package/built/esm/index.js.map +1 -1
- package/built/index.d.ts +3 -7
- package/built/index.js +2 -9
- package/built/index.js.map +1 -1
- package/built/mocks/handlers.d.ts +1 -1
- package/built/mocks/handlers.js +62 -21
- package/built/mocks/handlers.js.map +1 -1
- package/built/src/ICCF/IccfProofTxMaterialBuilder.js.map +1 -1
- package/built/src/ICCF/types.d.ts +4 -1
- package/built/src/ICCF/utils.js +2 -2
- package/built/src/ICCF/utils.js.map +1 -1
- package/built/src/blockchainClient/blockchainClient.js +51 -52
- package/built/src/blockchainClient/blockchainClient.js.map +1 -1
- package/built/src/blockchainClient/clientStub.js +18 -16
- package/built/src/blockchainClient/clientStub.js.map +1 -1
- package/built/src/blockchainClient/enums.d.ts +5 -0
- package/built/src/blockchainClient/enums.js +6 -0
- package/built/src/blockchainClient/enums.js.map +1 -1
- package/built/src/blockchainClient/errors.d.ts +20 -0
- package/built/src/blockchainClient/errors.js +41 -0
- package/built/src/blockchainClient/errors.js.map +1 -1
- package/built/src/{restclient → blockchainClient}/failoverStrategies.d.ts +14 -0
- package/built/src/{restclient → blockchainClient}/failoverStrategies.js +102 -23
- package/built/src/blockchainClient/failoverStrategies.js.map +1 -0
- package/built/src/blockchainClient/httpUtil.d.ts +4 -0
- package/built/src/{restclient → blockchainClient}/httpUtil.js +27 -23
- package/built/src/blockchainClient/httpUtil.js.map +1 -0
- package/built/src/blockchainClient/interface.d.ts +48 -59
- package/built/src/blockchainClient/nodeManager.js.map +1 -0
- package/built/src/blockchainClient/requestWithFailoverStrategy.d.ts +4 -0
- package/built/src/blockchainClient/requestWithFailoverStrategy.js +31 -0
- package/built/src/blockchainClient/requestWithFailoverStrategy.js.map +1 -0
- package/built/src/blockchainClient/types.d.ts +63 -20
- package/built/src/blockchainClient/utils.d.ts +37 -12
- package/built/src/blockchainClient/utils.js +136 -30
- package/built/src/blockchainClient/utils.js.map +1 -1
- package/built/src/blockchainClient/validation/merkleHash.js +2 -1
- package/built/src/blockchainClient/validation/merkleHash.js.map +1 -1
- package/built/src/blockchainClient/validation/rawGtx.d.ts +2 -0
- package/built/src/blockchainClient/validation/rawGtx.js +22 -0
- package/built/src/blockchainClient/validation/rawGtx.js.map +1 -0
- package/built/src/blockchainClient/validation/requests.d.ts +5 -2
- package/built/src/blockchainClient/validation/requests.js +26 -0
- package/built/src/blockchainClient/validation/requests.js.map +1 -1
- package/built/src/blockchainClient/validation/transactionStatusReponse.d.ts +2 -0
- package/built/src/blockchainClient/validation/transactionStatusReponse.js +24 -0
- package/built/src/blockchainClient/validation/transactionStatusReponse.js.map +1 -0
- package/built/src/blockchainClient/validation/txRid.js +1 -1
- package/built/src/blockchainClient/validation/txRid.js.map +1 -1
- package/built/src/encryption/encryption.d.ts +0 -1
- package/built/src/encryption/encryption.js +0 -2
- package/built/src/encryption/encryption.js.map +1 -1
- package/built/src/formatter.d.ts +5 -7
- package/built/src/formatter.js +10 -29
- package/built/src/formatter.js.map +1 -1
- package/built/src/gtv/index.d.ts +2 -1
- package/built/src/gtv/index.js.map +1 -1
- package/built/src/gtx/errors.d.ts +2 -1
- package/built/src/gtx/errors.js.map +1 -1
- package/built/src/gtx/gtx.d.ts +5 -2
- package/built/src/gtx/gtx.js +0 -7
- package/built/src/gtx/gtx.js.map +1 -1
- package/built/src/gtx/serialization.d.ts +0 -1
- package/built/src/gtx/serialization.js +0 -1
- package/built/src/gtx/serialization.js.map +1 -1
- package/built/src/gtx/types.d.ts +0 -8
- package/built/src/logger.d.ts +6 -9
- package/built/src/logger.js +8 -14
- package/built/src/logger.js.map +1 -1
- package/built/src/merkle/merkleHelper.d.ts +0 -1
- package/built/src/merkle/merkleHelper.js +0 -1
- package/built/src/merkle/merkleHelper.js.map +1 -1
- package/built/src/promiEvent/promiEventEmitter.d.ts +1 -8
- package/built/src/promiEvent/promiEventEmitter.js.map +1 -1
- package/built/src/utils/calculateTransactionRid.d.ts +1 -1
- package/built/src/utils/calculateTransactionRid.js +6 -6
- package/built/src/utils/calculateTransactionRid.js.map +1 -1
- package/built/src/utils/constants.d.ts +4 -0
- package/built/src/utils/constants.js +5 -0
- package/built/src/utils/constants.js.map +1 -0
- package/built/src/utils/decodeTransactionToGtx.d.ts +1 -1
- package/built/src/utils/decodeTransactionToGtx.js +4 -3
- package/built/src/utils/decodeTransactionToGtx.js.map +1 -1
- package/built/src/utils/encodeTransaction.d.ts +1 -1
- package/built/src/utils/encodeTransaction.js +4 -4
- package/built/src/utils/encodeTransaction.js.map +1 -1
- package/built/test/common/mocks.d.ts +118 -0
- package/built/test/common/mocks.js +239 -0
- package/built/test/common/mocks.js.map +1 -0
- package/built/test/{unit/gtx → common}/serializationtestobjects.d.ts +1 -1
- package/built/test/common/serializationtestobjects.js.map +1 -0
- package/built/test/common/setups.d.ts +27 -0
- package/built/test/common/setups.js +137 -0
- package/built/test/common/setups.js.map +1 -0
- package/built/test/{unit → common}/signatures.d.ts +0 -1
- package/built/test/{unit → common}/signatures.js +0 -1
- package/built/test/common/signatures.js.map +1 -0
- package/built/test/common/testData.js.map +1 -0
- package/built/test/{unit/validation → common}/validationMocks.d.ts +22 -2
- package/built/test/{unit/validation → common}/validationMocks.js +13 -1
- package/built/test/common/validationMocks.js.map +1 -0
- package/built/test/integration/clientGetBlockInfo.test.js +51 -0
- package/built/test/integration/clientGetBlockInfo.test.js.map +1 -0
- package/built/test/integration/clientGetRejectedTransactions.test.js +28 -0
- package/built/test/integration/clientGetRejectedTransactions.test.js.map +1 -0
- package/built/test/integration/clientGetTransaction.test.js +29 -0
- package/built/test/integration/clientGetTransaction.test.js.map +1 -0
- package/built/test/integration/clientGetTransactionStatus.test.js +71 -0
- package/built/test/integration/clientGetTransactionStatus.test.js.map +1 -0
- package/built/test/integration/clientGetWaitingTransaction.test.js +34 -0
- package/built/test/integration/clientGetWaitingTransaction.test.js.map +1 -0
- package/built/test/integration/clientGetWaitingTransactions.test.js +28 -0
- package/built/test/integration/clientGetWaitingTransactions.test.js.map +1 -0
- package/built/test/integration/clientIntegration.test.js +95 -0
- package/built/test/integration/clientIntegration.test.js.map +1 -0
- package/built/test/integration/clientQuery.test.js +380 -0
- package/built/test/integration/clientQuery.test.js.map +1 -0
- package/built/test/integration/clientSendTransaction.test.js +86 -0
- package/built/test/integration/clientSendTransaction.test.js.map +1 -0
- package/built/test/integration/clientSignAndSendUniqueTransaction.test.js +75 -0
- package/built/test/integration/clientSignAndSendUniqueTransaction.test.js.map +1 -0
- package/built/test/integration/clientSignTransaction.test.js +77 -0
- package/built/test/integration/clientSignTransaction.test.js.map +1 -0
- package/built/test/integration/{blockchainClientUtils.test.js → clientUtils.test.js} +13 -8
- package/built/test/integration/clientUtils.test.js.map +1 -0
- package/built/test/integration/createClientIntegration.test.js +158 -0
- package/built/test/integration/createClientIntegration.test.js.map +1 -0
- package/built/test/integration/encodeTransaction.test.js +3 -6
- package/built/test/integration/encodeTransaction.test.js.map +1 -1
- package/built/test/integration/getTransactionsInfo.test.js +17 -26
- package/built/test/integration/getTransactionsInfo.test.js.map +1 -1
- package/built/test/integration/signAndSendUniqueTransaction.test.js +26 -19
- package/built/test/integration/signAndSendUniqueTransaction.test.js.map +1 -1
- package/built/test/integrationChromiaNetwork/createIccfProofTx.test.js +59 -0
- package/built/test/integrationChromiaNetwork/createIccfProofTx.test.js.map +1 -0
- package/built/test/{integrationDevnet → integrationChromiaNetwork}/getAnchoringStatusForBlockRid.test.js +9 -15
- package/built/test/integrationChromiaNetwork/getAnchoringStatusForBlockRid.test.js.map +1 -0
- package/built/test/{integrationDevnet → integrationChromiaNetwork}/getTransactionConfirmationLevel.test.js +7 -13
- package/built/test/integrationChromiaNetwork/getTransactionConfirmationLevel.test.js.map +1 -0
- package/built/test/integrationChromiaNetwork/getTransactionStatus.test.js +45 -0
- package/built/test/integrationChromiaNetwork/getTransactionStatus.test.js.map +1 -0
- package/built/test/integrationChromiaNetwork/isBlockAnchored.test.d.ts +1 -0
- package/built/test/integrationChromiaNetwork/isBlockAnchored.test.js +35 -0
- package/built/test/integrationChromiaNetwork/isBlockAnchored.test.js.map +1 -0
- package/built/test/integrationChromiaNetwork/merkleHashIntegration.test.d.ts +1 -0
- package/built/test/integrationChromiaNetwork/merkleHashIntegration.test.js +134 -0
- package/built/test/integrationChromiaNetwork/merkleHashIntegration.test.js.map +1 -0
- package/built/test/integrationChromiaNetwork/nodeDiscovery.test.d.ts +1 -0
- package/built/test/integrationChromiaNetwork/nodeDiscovery.test.js +26 -0
- package/built/test/integrationChromiaNetwork/nodeDiscovery.test.js.map +1 -0
- package/built/test/integrationChromiaNetwork/requestWithFailoverStrategy.test.d.ts +1 -0
- package/built/test/integrationChromiaNetwork/requestWithFailoverStrategy.test.js +84 -0
- package/built/test/integrationChromiaNetwork/requestWithFailoverStrategy.test.js.map +1 -0
- package/built/test/integrationChromiaNetwork/signAndSendUniqueTransaction.test.d.ts +1 -0
- package/built/test/{integrationDevnet → integrationChromiaNetwork}/signAndSendUniqueTransaction.test.js +27 -44
- package/built/test/integrationChromiaNetwork/signAndSendUniqueTransaction.test.js.map +1 -0
- package/built/test/manual/iccfManually.test.js +18 -27
- package/built/test/manual/iccfManually.test.js.map +1 -1
- package/built/test/unit/ICCF/iccf.test.js +63 -158
- package/built/test/unit/ICCF/iccf.test.js.map +1 -1
- package/built/test/unit/ICCF/iccfProofMaterialBuilder.test.d.ts +1 -2
- package/built/test/unit/ICCF/iccfProofMaterialBuilder.test.js +101 -296
- package/built/test/unit/ICCF/iccfProofMaterialBuilder.test.js.map +1 -1
- package/built/test/unit/blockchainClient/client.getRejectedTransactions.test.d.ts +1 -0
- package/built/test/unit/blockchainClient/client.getRejectedTransactions.test.js +48 -0
- package/built/test/unit/blockchainClient/client.getRejectedTransactions.test.js.map +1 -0
- package/built/test/unit/blockchainClient/client.getWaitingTransaction.test.d.ts +1 -0
- package/built/test/unit/blockchainClient/client.getWaitingTransaction.test.js +38 -0
- package/built/test/unit/blockchainClient/client.getWaitingTransaction.test.js.map +1 -0
- package/built/test/unit/blockchainClient/client.getWaitingTransactions.test.d.ts +1 -0
- package/built/test/unit/blockchainClient/client.getWaitingTransactions.test.js +30 -0
- package/built/test/unit/blockchainClient/client.getWaitingTransactions.test.js.map +1 -0
- package/built/test/unit/blockchainClient/client.test.d.ts +1 -0
- package/built/test/unit/blockchainClient/client.test.js +175 -0
- package/built/test/unit/blockchainClient/client.test.js.map +1 -0
- package/built/test/unit/blockchainClient/clientCustomStatusCodes.test.js +26 -32
- package/built/test/unit/blockchainClient/clientCustomStatusCodes.test.js.map +1 -1
- package/built/test/unit/blockchainClient/getAnchoringStatusForBlockRid.test.js +26 -59
- package/built/test/unit/blockchainClient/getAnchoringStatusForBlockRid.test.js.map +1 -1
- package/built/test/unit/blockchainClient/getSystemAnchoringTransactionConfirmation.test.js +21 -38
- package/built/test/unit/blockchainClient/getSystemAnchoringTransactionConfirmation.test.js.map +1 -1
- package/built/test/unit/blockchainClient/getTransactionConfirmationLevel.test.js +77 -127
- package/built/test/unit/blockchainClient/getTransactionConfirmationLevel.test.js.map +1 -1
- package/built/test/unit/blockchainClient/sendTransaction.test.js +352 -675
- package/built/test/unit/blockchainClient/sendTransaction.test.js.map +1 -1
- package/built/test/unit/blockchainClient/setMerkleVersion.test.js +14 -28
- package/built/test/unit/blockchainClient/setMerkleVersion.test.js.map +1 -1
- package/built/test/unit/blockchainClient/signAndSendUniqueTransactionPromiEvents.test.js +31 -98
- package/built/test/unit/blockchainClient/signAndSendUniqueTransactionPromiEvents.test.js.map +1 -1
- package/built/test/unit/blockchainClient/statusPollIntervals.test.js +34 -54
- package/built/test/unit/blockchainClient/statusPollIntervals.test.js.map +1 -1
- package/built/test/unit/blockchainClient/util.test.js +74 -133
- package/built/test/unit/blockchainClient/util.test.js.map +1 -1
- package/built/test/unit/decodeTransactionToGtx.test.js +3 -4
- package/built/test/unit/decodeTransactionToGtx.test.js.map +1 -1
- package/built/test/unit/dump.test.js +2 -3
- package/built/test/unit/dump.test.js.map +1 -1
- package/built/test/unit/encryption/encryption.test.js +23 -32
- package/built/test/unit/encryption/encryption.test.js.map +1 -1
- package/built/test/unit/failoverStrategies.test.js +122 -114
- package/built/test/unit/failoverStrategies.test.js.map +1 -1
- package/built/test/unit/formatter.test.js +38 -42
- package/built/test/unit/formatter.test.js.map +1 -1
- package/built/test/unit/gtv/gtvHash.test.js +5 -6
- package/built/test/unit/gtv/gtvHash.test.js.map +1 -1
- package/built/test/unit/gtx/checkGTXSignature.test.js +5 -7
- package/built/test/unit/gtx/checkGTXSignature.test.js.map +1 -1
- package/built/test/unit/gtx/newSignatureProvider.test.js +9 -10
- package/built/test/unit/gtx/newSignatureProvider.test.js.map +1 -1
- package/built/test/unit/gtx/serialization.test.js +37 -138
- package/built/test/unit/gtx/serialization.test.js.map +1 -1
- package/built/test/unit/httpUtil.test.js +27 -18
- package/built/test/unit/httpUtil.test.js.map +1 -1
- package/built/test/unit/logger.test.js +23 -25
- package/built/test/unit/logger.test.js.map +1 -1
- package/built/test/unit/merkle/merkleHelper/merkleHelperTest.js +10 -12
- package/built/test/unit/merkle/merkleHelper/merkleHelperTest.js.map +1 -1
- package/built/test/unit/nodeMananger.test.js +62 -74
- package/built/test/unit/nodeMananger.test.js.map +1 -1
- package/built/test/unit/setOrdering.test.js +9 -9
- package/built/test/unit/setOrdering.test.js.map +1 -1
- package/built/test/unit/stickyNode.test.js +44 -54
- package/built/test/unit/stickyNode.test.js.map +1 -1
- package/built/test/unit/validation/anchoringTransaction.test.js +7 -8
- package/built/test/unit/validation/anchoringTransaction.test.js.map +1 -1
- package/built/test/unit/validation/blockIdentifier.test.js +7 -9
- package/built/test/unit/validation/blockIdentifier.test.js.map +1 -1
- package/built/test/unit/validation/bufferSchema.test.js +4 -5
- package/built/test/unit/validation/bufferSchema.test.js.map +1 -1
- package/built/test/unit/validation/networkSettings.test.js +11 -13
- package/built/test/unit/validation/networkSettings.test.js.map +1 -1
- package/built/test/unit/validation/rawGtx.test.d.ts +1 -0
- package/built/test/unit/validation/rawGtx.test.js +84 -0
- package/built/test/unit/validation/rawGtx.test.js.map +1 -0
- package/built/test/unit/validation/requests.test.js +80 -74
- package/built/test/unit/validation/requests.test.js.map +1 -1
- package/built/test/unit/validation/signMethod.test.js +8 -10
- package/built/test/unit/validation/signMethod.test.js.map +1 -1
- package/built/test/unit/validation/statusObject.test.d.ts +1 -0
- package/built/test/unit/validation/statusObject.test.js +91 -0
- package/built/test/unit/validation/statusObject.test.js.map +1 -0
- package/built/test/unit/validation/txRid.test.js +7 -9
- package/built/test/unit/validation/txRid.test.js.map +1 -1
- package/built/umd/index.js +32517 -32771
- package/built/umd/index.js.map +1 -1
- package/changelog.md +52 -1
- package/package.json +22 -22
- package/built/src/chromia/chromiaClientProvider.d.ts +0 -9
- package/built/src/chromia/chromiaClientProvider.js +0 -36
- package/built/src/chromia/chromiaClientProvider.js.map +0 -1
- package/built/src/chromia/interfaces.d.ts +0 -4
- package/built/src/chromia/interfaces.js +0 -2
- package/built/src/chromia/interfaces.js.map +0 -1
- package/built/src/constants.d.ts +0 -3
- package/built/src/constants.js +0 -4
- package/built/src/constants.js.map +0 -1
- package/built/src/gtx/gtxclient.d.ts +0 -3
- package/built/src/gtx/gtxclient.js +0 -96
- package/built/src/gtx/gtxclient.js.map +0 -1
- package/built/src/gtx/interfaces.d.ts +0 -91
- package/built/src/gtx/interfaces.js +0 -2
- package/built/src/gtx/interfaces.js.map +0 -1
- package/built/src/restclient/enums.d.ts +0 -4
- package/built/src/restclient/enums.js +0 -6
- package/built/src/restclient/enums.js.map +0 -1
- package/built/src/restclient/errors.d.ts +0 -33
- package/built/src/restclient/errors.js +0 -63
- package/built/src/restclient/errors.js.map +0 -1
- package/built/src/restclient/failoverStrategies.js.map +0 -1
- package/built/src/restclient/httpUtil.d.ts +0 -6
- package/built/src/restclient/httpUtil.js.map +0 -1
- package/built/src/restclient/interfaces.d.ts +0 -68
- package/built/src/restclient/interfaces.js +0 -2
- package/built/src/restclient/interfaces.js.map +0 -1
- package/built/src/restclient/nodeManager.js.map +0 -1
- package/built/src/restclient/restclient.d.ts +0 -18
- package/built/src/restclient/restclient.js +0 -200
- package/built/src/restclient/restclient.js.map +0 -1
- package/built/src/restclient/restclientutil.d.ts +0 -32
- package/built/src/restclient/restclientutil.js +0 -141
- package/built/src/restclient/restclientutil.js.map +0 -1
- package/built/src/restclient/types.d.ts +0 -78
- package/built/src/restclient/types.js +0 -2
- package/built/src/restclient/types.js.map +0 -1
- package/built/test/integration/blockchainClientIntegration.test.js +0 -1075
- package/built/test/integration/blockchainClientIntegration.test.js.map +0 -1
- package/built/test/integration/blockchainClientUtils.test.js.map +0 -1
- package/built/test/integration/gtxClientIntegration.test.js +0 -334
- package/built/test/integration/gtxClientIntegration.test.js.map +0 -1
- package/built/test/integration/merkleIntegration.test.js +0 -138
- package/built/test/integration/merkleIntegration.test.js.map +0 -1
- package/built/test/integration/objectGenerator.d.ts +0 -3
- package/built/test/integration/objectGenerator.js +0 -17
- package/built/test/integration/objectGenerator.js.map +0 -1
- package/built/test/integration/restClientIntegration.test.js +0 -170
- package/built/test/integration/restClientIntegration.test.js.map +0 -1
- package/built/test/integration/testData.js.map +0 -1
- package/built/test/integrationDevnet/constants.d.ts +0 -1
- package/built/test/integrationDevnet/constants.js +0 -2
- package/built/test/integrationDevnet/constants.js.map +0 -1
- package/built/test/integrationDevnet/getAnchoringStatusForBlockRid.test.js.map +0 -1
- package/built/test/integrationDevnet/getTransactionConfirmationLevel.test.js.map +0 -1
- package/built/test/integrationDevnet/getTransactionStatus.test.js +0 -53
- package/built/test/integrationDevnet/getTransactionStatus.test.js.map +0 -1
- package/built/test/integrationDevnet/signAndSendUniqueTransaction.test.js.map +0 -1
- package/built/test/manual/chromiaClientProviderManually.test.js +0 -28
- package/built/test/manual/chromiaClientProviderManually.test.js.map +0 -1
- package/built/test/manual/restClientManually.test.js +0 -52
- package/built/test/manual/restClientManually.test.js.map +0 -1
- package/built/test/unit/ICCF/util.d.ts +0 -6
- package/built/test/unit/ICCF/util.js +0 -21
- package/built/test/unit/ICCF/util.js.map +0 -1
- package/built/test/unit/blockchainClient/blockchainClient.test.js +0 -287
- package/built/test/unit/blockchainClient/blockchainClient.test.js.map +0 -1
- package/built/test/unit/blockchainClient/helpers/sendTransaction.d.ts +0 -25
- package/built/test/unit/blockchainClient/helpers/sendTransaction.js +0 -56
- package/built/test/unit/blockchainClient/helpers/sendTransaction.js.map +0 -1
- package/built/test/unit/chromiaClientProvider.test.js +0 -70
- package/built/test/unit/chromiaClientProvider.test.js.map +0 -1
- package/built/test/unit/common/mocks.d.ts +0 -34
- package/built/test/unit/common/mocks.js +0 -69
- package/built/test/unit/common/mocks.js.map +0 -1
- package/built/test/unit/gtx/gtxClient.test.js +0 -97
- package/built/test/unit/gtx/gtxClient.test.js.map +0 -1
- package/built/test/unit/gtx/serializationtestobjects.js.map +0 -1
- package/built/test/unit/requestWithFailoverStrategy.test.js +0 -146
- package/built/test/unit/requestWithFailoverStrategy.test.js.map +0 -1
- package/built/test/unit/restClient.test.js +0 -389
- package/built/test/unit/restClient.test.js.map +0 -1
- package/built/test/unit/restClientUtil.test.js +0 -226
- package/built/test/unit/restClientUtil.test.js.map +0 -1
- package/built/test/unit/signatures.js.map +0 -1
- package/built/test/unit/validation/validationMocks.js.map +0 -1
- /package/built/src/{restclient → blockchainClient}/nodeManager.d.ts +0 -0
- /package/built/src/{restclient → blockchainClient}/nodeManager.js +0 -0
- /package/built/test/{unit/gtx → common}/serializationtestobjects.js +0 -0
- /package/built/test/{integration → common}/testData.d.ts +0 -0
- /package/built/test/{integration → common}/testData.js +0 -0
- /package/built/test/integration/{blockchainClientIntegration.test.d.ts → clientGetBlockInfo.test.d.ts} +0 -0
- /package/built/test/integration/{blockchainClientUtils.test.d.ts → clientGetRejectedTransactions.test.d.ts} +0 -0
- /package/built/test/integration/{gtxClientIntegration.test.d.ts → clientGetTransaction.test.d.ts} +0 -0
- /package/built/test/integration/{merkleIntegration.test.d.ts → clientGetTransactionStatus.test.d.ts} +0 -0
- /package/built/test/integration/{restClientIntegration.test.d.ts → clientGetWaitingTransaction.test.d.ts} +0 -0
- /package/built/test/{integrationDevnet/getAnchoringStatusForBlockRid.test.d.ts → integration/clientGetWaitingTransactions.test.d.ts} +0 -0
- /package/built/test/{integrationDevnet/getTransactionConfirmationLevel.test.d.ts → integration/clientIntegration.test.d.ts} +0 -0
- /package/built/test/{integrationDevnet/getTransactionStatus.test.d.ts → integration/clientQuery.test.d.ts} +0 -0
- /package/built/test/{integrationDevnet/signAndSendUniqueTransaction.test.d.ts → integration/clientSendTransaction.test.d.ts} +0 -0
- /package/built/test/{manual/chromiaClientProviderManually.test.d.ts → integration/clientSignAndSendUniqueTransaction.test.d.ts} +0 -0
- /package/built/test/{manual/restClientManually.test.d.ts → integration/clientSignTransaction.test.d.ts} +0 -0
- /package/built/test/{unit/blockchainClient/blockchainClient.test.d.ts → integration/clientUtils.test.d.ts} +0 -0
- /package/built/test/{unit/chromiaClientProvider.test.d.ts → integration/createClientIntegration.test.d.ts} +0 -0
- /package/built/test/{unit/gtx/gtxClient.test.d.ts → integrationChromiaNetwork/createIccfProofTx.test.d.ts} +0 -0
- /package/built/test/{unit/requestWithFailoverStrategy.test.d.ts → integrationChromiaNetwork/getAnchoringStatusForBlockRid.test.d.ts} +0 -0
- /package/built/test/{unit/restClient.test.d.ts → integrationChromiaNetwork/getTransactionConfirmationLevel.test.d.ts} +0 -0
- /package/built/test/{unit/restClientUtil.test.d.ts → integrationChromiaNetwork/getTransactionStatus.test.d.ts} +0 -0
|
@@ -7,124 +7,84 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import { describe } from "mocha";
|
|
11
|
-
import { expect } from "chai";
|
|
12
|
-
import { formatBlockInfoResponse, getAnchoringClientAndSystemChainRid, nodeDiscovery, } from "../../../src/blockchainClient/utils";
|
|
13
|
-
import * as restClientUtils from "../../../src/restclient/restclientutil";
|
|
14
|
-
import sinon from "sinon";
|
|
15
|
-
import { encodeValue } from "../../../src/gtx/serialization";
|
|
16
10
|
import { DirectoryNodeUrlPoolException, MissingBlockchainIdentifierError, } from "../../../src/blockchainClient/errors";
|
|
17
11
|
import { server } from "../../../mocks/servers";
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import { createNodeManager } from "../../../src/restclient/nodeManager";
|
|
21
|
-
import { contentTypes, mockHexStringOfThirtyTwoBytesBuffer, mockStringBlockchainRid, } from "../common/mocks";
|
|
22
|
-
import { createClient } from "../../../src/blockchainClient/blockchainClient";
|
|
23
|
-
import * as utils from "../../../src/blockchainClient/utils";
|
|
24
|
-
import { clientConfiguredToD1 } from "../ICCF/iccfProofMaterialBuilder.test";
|
|
12
|
+
import { createNodeManager } from "../../../src/blockchainClient/nodeManager";
|
|
13
|
+
import { exampleTxHashString, LOCAL_POOL, mockBuffer, mockBufferBlockchainRid, mockHexStringOfThirtyTwoBytesBuffer, mockStringBlockchainRid, mockStringDirectoryChainRid, } from "../../common/mocks";
|
|
25
14
|
import { SystemChainException } from "../../../src/ICCF/error";
|
|
26
|
-
import {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
});
|
|
15
|
+
import { getTestsClient } from "../../common/setups";
|
|
16
|
+
import * as utils from "../../../src/blockchainClient/utils";
|
|
17
|
+
import * as iccf from "../../../src/ICCF/IccfProofTxMaterialBuilder";
|
|
18
|
+
import * as blockchainClient from "../../../src/blockchainClient/blockchainClient";
|
|
19
|
+
let client;
|
|
20
|
+
describe("Blockchain client util tests", () => {
|
|
21
|
+
const directoryNodeUrlPool = [{ url: LOCAL_POOL, whenAvailable: 0 }];
|
|
22
|
+
beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
23
|
+
server.listen();
|
|
24
|
+
client = yield getTestsClient();
|
|
25
|
+
}));
|
|
26
|
+
beforeEach(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
27
|
+
jest.clearAllMocks();
|
|
28
|
+
}));
|
|
37
29
|
afterEach(() => {
|
|
38
30
|
server.resetHandlers();
|
|
39
|
-
|
|
40
|
-
sinon.restore();
|
|
41
|
-
mockGetBrid.reset();
|
|
31
|
+
jest.restoreAllMocks();
|
|
42
32
|
});
|
|
43
|
-
const mockQueryGtvResponse = ({ status, responseBody, }) => {
|
|
44
|
-
server.use(http.post(`${domain}/query_gtv/${mockHexStringOfThirtyTwoBytesBuffer}`, () => {
|
|
45
|
-
return new HttpResponse(responseBody, {
|
|
46
|
-
status,
|
|
47
|
-
headers: {
|
|
48
|
-
"Content-Type": contentTypes.octetStream,
|
|
49
|
-
},
|
|
50
|
-
});
|
|
51
|
-
}));
|
|
52
|
-
};
|
|
53
33
|
describe("getNodeUrlsForBlockchainFromDirectoryChain", () => {
|
|
54
|
-
it("returns list of node
|
|
55
|
-
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
const res = yield nodeDiscovery({
|
|
34
|
+
it("returns list of node URLs", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
35
|
+
const expectedResponse = ["url1", "url2"];
|
|
36
|
+
const mockClient = {
|
|
37
|
+
query: jest.fn().mockResolvedValue(expectedResponse),
|
|
38
|
+
config: { endpointPool: [{ url: "url1" }] },
|
|
39
|
+
};
|
|
40
|
+
jest.spyOn(blockchainClient, "createClient").mockResolvedValue(mockClient);
|
|
41
|
+
const res = yield utils.nodeDiscovery({
|
|
63
42
|
nodeManager: createNodeManager({
|
|
64
43
|
nodeUrls: directoryNodeUrlPool.map(node => node.url),
|
|
65
44
|
}),
|
|
66
45
|
directoryEndpointPool: directoryNodeUrlPool,
|
|
67
46
|
blockchainRid: mockHexStringOfThirtyTwoBytesBuffer,
|
|
68
47
|
});
|
|
69
|
-
expect(res).
|
|
48
|
+
expect(res).toEqual(expectedResponse);
|
|
70
49
|
}));
|
|
71
|
-
it("throws error if no blockchain RID or IID was provided", () => __awaiter(
|
|
72
|
-
|
|
50
|
+
it("throws error if no blockchain RID or IID was provided", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
51
|
+
yield expect(utils.nodeDiscovery({
|
|
73
52
|
nodeManager: createNodeManager({
|
|
74
53
|
nodeUrls: directoryNodeUrlPool.map(node => node.url),
|
|
75
54
|
}),
|
|
76
55
|
directoryEndpointPool: directoryNodeUrlPool,
|
|
77
|
-
});
|
|
78
|
-
yield expect(promise).to.be.rejectedWith(MissingBlockchainIdentifierError);
|
|
56
|
+
})).rejects.toThrow(MissingBlockchainIdentifierError);
|
|
79
57
|
}));
|
|
80
|
-
it("
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
mockQueryGtvResponse({
|
|
84
|
-
responseBody: encodeValue(serverReturnNodes),
|
|
85
|
-
status: 200,
|
|
86
|
-
});
|
|
87
|
-
const promise = nodeDiscovery({
|
|
58
|
+
it("throws error if directory node URL pool is missing", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
59
|
+
const emptyDirectoryNodeUrlPool = [];
|
|
60
|
+
yield expect(utils.nodeDiscovery({
|
|
88
61
|
nodeManager: createNodeManager({
|
|
89
|
-
nodeUrls:
|
|
62
|
+
nodeUrls: emptyDirectoryNodeUrlPool.map(node => node.url),
|
|
90
63
|
}),
|
|
91
|
-
directoryEndpointPool:
|
|
64
|
+
directoryEndpointPool: emptyDirectoryNodeUrlPool,
|
|
92
65
|
blockchainRid: mockHexStringOfThirtyTwoBytesBuffer,
|
|
93
|
-
});
|
|
94
|
-
yield expect(promise).to.be.rejectedWith(DirectoryNodeUrlPoolException);
|
|
66
|
+
})).rejects.toThrow(DirectoryNodeUrlPoolException);
|
|
95
67
|
}));
|
|
96
|
-
it("returns
|
|
97
|
-
|
|
98
|
-
const serverReturnNodes = [];
|
|
99
|
-
mockQueryGtvResponse({
|
|
100
|
-
responseBody: encodeValue(serverReturnNodes),
|
|
101
|
-
status: 200,
|
|
102
|
-
});
|
|
103
|
-
const res = yield nodeDiscovery({
|
|
68
|
+
it("returns null if no nodes were found", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
69
|
+
const res = yield utils.nodeDiscovery({
|
|
104
70
|
nodeManager: createNodeManager({
|
|
105
71
|
nodeUrls: directoryNodeUrlPool.map(node => node.url),
|
|
106
72
|
}),
|
|
107
73
|
directoryEndpointPool: directoryNodeUrlPool,
|
|
108
74
|
blockchainRid: mockHexStringOfThirtyTwoBytesBuffer,
|
|
109
75
|
});
|
|
110
|
-
expect(res).
|
|
76
|
+
expect(res).toEqual(null);
|
|
111
77
|
}));
|
|
112
78
|
});
|
|
113
|
-
it("returns empty list if no nodes were found using blockchainIID", () => __awaiter(
|
|
114
|
-
|
|
115
|
-
const serverReturnNodes = [];
|
|
116
|
-
mockQueryGtvResponse({
|
|
117
|
-
responseBody: encodeValue(serverReturnNodes),
|
|
118
|
-
status: 200,
|
|
119
|
-
});
|
|
120
|
-
const res = yield nodeDiscovery({
|
|
79
|
+
it("returns empty list if no nodes were found using blockchainIID", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
80
|
+
const res = yield utils.nodeDiscovery({
|
|
121
81
|
nodeManager: createNodeManager({
|
|
122
82
|
nodeUrls: directoryNodeUrlPool.map(node => node.url),
|
|
123
83
|
}),
|
|
124
84
|
directoryEndpointPool: directoryNodeUrlPool,
|
|
125
85
|
blockchainIid: 0,
|
|
126
86
|
});
|
|
127
|
-
expect(res).
|
|
87
|
+
expect(res).toEqual(null);
|
|
128
88
|
}));
|
|
129
89
|
describe("formatBlockInfoResponse", () => {
|
|
130
90
|
const baseBlockInfo = {
|
|
@@ -137,62 +97,43 @@ describe("Blockchain client util tests", function () {
|
|
|
137
97
|
witnesses: ["string"],
|
|
138
98
|
timestamp: 11,
|
|
139
99
|
};
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
hash: "string",
|
|
144
|
-
},
|
|
145
|
-
] });
|
|
146
|
-
const blockInfoWithTransactionData = Object.assign(Object.assign({}, baseBlockInfo), { transactions: [
|
|
147
|
-
{
|
|
148
|
-
rid: "string",
|
|
149
|
-
hash: "string",
|
|
150
|
-
data: "string",
|
|
151
|
-
},
|
|
152
|
-
] });
|
|
153
|
-
it("format block info", () => {
|
|
154
|
-
const result = formatBlockInfoResponse(blockInfoWithTransactionData);
|
|
155
|
-
expect(result).be.not.be.null;
|
|
156
|
-
});
|
|
157
|
-
it("format block info without transaction data", () => {
|
|
158
|
-
const result = formatBlockInfoResponse(blockInfoWithTransactions);
|
|
159
|
-
expect(result).be.not.be.null;
|
|
160
|
-
});
|
|
161
|
-
it("format block info without transactions", () => {
|
|
162
|
-
const result = formatBlockInfoResponse(baseBlockInfo);
|
|
163
|
-
expect(result).be.not.be.null;
|
|
100
|
+
it("formats block info", () => {
|
|
101
|
+
const result = utils.formatBlockInfoResponse(baseBlockInfo);
|
|
102
|
+
expect(result).not.toBeNull();
|
|
164
103
|
});
|
|
165
104
|
});
|
|
166
|
-
it("getAnchoringClientAndSystemChainRid returns anchoringClient and systemAnchoringChainBridString", () => __awaiter(
|
|
167
|
-
const
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
105
|
+
it("getAnchoringClientAndSystemChainRid returns anchoringClient and systemAnchoringChainBridString", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
106
|
+
const mockClient = {
|
|
107
|
+
config: {
|
|
108
|
+
endpointPool: [{ url: "http://localhost" }],
|
|
109
|
+
blockchainRid: mockStringBlockchainRid,
|
|
110
|
+
directoryChainRid: mockStringDirectoryChainRid,
|
|
111
|
+
},
|
|
112
|
+
query: jest.fn().mockResolvedValue(mockBuffer),
|
|
113
|
+
};
|
|
114
|
+
jest.spyOn(blockchainClient, "createClient").mockResolvedValue(mockClient);
|
|
115
|
+
jest.spyOn(utils, "getSystemClient").mockResolvedValue(mockClient);
|
|
116
|
+
jest.spyOn(iccf, "getAnchoringClient").mockResolvedValue(mockClient);
|
|
117
|
+
jest.spyOn(utils, "getSystemAnchoringChain").mockResolvedValue(mockBufferBlockchainRid);
|
|
118
|
+
const { anchoringClient, systemAnchoringChainBridString } = yield utils.getAnchoringClientAndSystemChainRid(mockClient);
|
|
119
|
+
expect(anchoringClient).toEqual(mockClient);
|
|
120
|
+
expect(systemAnchoringChainBridString).toEqual(exampleTxHashString);
|
|
180
121
|
}));
|
|
181
122
|
describe("getSystemAnchoringChain", () => {
|
|
182
|
-
it("
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
123
|
+
it("throws SystemChainException when invalid client is provided", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
124
|
+
yield expect(utils.getSystemAnchoringChain(client)).rejects.toThrow(SystemChainException);
|
|
125
|
+
}));
|
|
126
|
+
});
|
|
127
|
+
describe("getBlockchainApiUrls", () => {
|
|
128
|
+
it("returns null when directory chain query does not find blockchain api urls for blockchain rid", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
129
|
+
const notFoundBlockchainApiUrls = yield utils.getBlockchainApiUrls(client, mockBufferBlockchainRid);
|
|
130
|
+
expect(notFoundBlockchainApiUrls).toEqual(null);
|
|
131
|
+
}));
|
|
132
|
+
it("returns node URLs array", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
133
|
+
const expectedNodesUrls = ["url1", "url2"];
|
|
134
|
+
jest.spyOn(client, "query").mockResolvedValue(expectedNodesUrls);
|
|
135
|
+
const foundBlockchainApiUrls = yield utils.getBlockchainApiUrls(client, mockBuffer);
|
|
136
|
+
expect(foundBlockchainApiUrls).toEqual(expectedNodesUrls);
|
|
196
137
|
}));
|
|
197
138
|
});
|
|
198
139
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.test.js","sourceRoot":"","sources":["../../../../test/unit/blockchainClient/util.test.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"util.test.js","sourceRoot":"","sources":["../../../../test/unit/blockchainClient/util.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { expect } from "chai";
|
|
2
1
|
import { decodeTransactionToGtx } from "../../src/utils/decodeTransactionToGtx";
|
|
3
|
-
import
|
|
2
|
+
import { encodeTransaction } from "../../src/utils/encodeTransaction";
|
|
4
3
|
describe("decodeTransactionToGtx", () => {
|
|
5
4
|
it("should not fail if gtx has Bigint value", () => {
|
|
6
5
|
const gtxData = {
|
|
@@ -9,9 +8,9 @@ describe("decodeTransactionToGtx", () => {
|
|
|
9
8
|
operations: [{ opName: "operation", args: [42529585n] }],
|
|
10
9
|
signers: [],
|
|
11
10
|
};
|
|
12
|
-
const serializedGtx =
|
|
11
|
+
const serializedGtx = encodeTransaction(gtxData);
|
|
13
12
|
const decodedGtx = decodeTransactionToGtx(Buffer.from(serializedGtx));
|
|
14
|
-
expect(gtxData).
|
|
13
|
+
expect(gtxData).toMatchObject(decodedGtx);
|
|
15
14
|
});
|
|
16
15
|
});
|
|
17
16
|
//# sourceMappingURL=decodeTransactionToGtx.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decodeTransactionToGtx.test.js","sourceRoot":"","sources":["../../../test/unit/decodeTransactionToGtx.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"decodeTransactionToGtx.test.js","sourceRoot":"","sources":["../../../test/unit/decodeTransactionToGtx.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,OAAO,GAAG;YACd,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;YACzC,kCAAkC;YAClC,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;YACxD,OAAO,EAAE,EAAE;SACZ,CAAC;QACF,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAEjD,MAAM,UAAU,GAAG,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { expect } from "chai";
|
|
2
1
|
import { dumpGtx } from "../../src/utils/dump";
|
|
3
|
-
import { mockStringBlockchainRid } from "
|
|
2
|
+
import { mockStringBlockchainRid } from "../common/mocks";
|
|
4
3
|
const mockBuffer = Buffer.from(mockStringBlockchainRid);
|
|
5
4
|
const gtx = {
|
|
6
5
|
blockchainRid: mockBuffer,
|
|
@@ -41,7 +40,7 @@ signatures:
|
|
|
41
40
|
`;
|
|
42
41
|
describe("dump Gtv and Gtx", () => {
|
|
43
42
|
it("dump Gtx in readable format", () => {
|
|
44
|
-
expect(dumpGtx(gtx)).
|
|
43
|
+
expect(dumpGtx(gtx)).toEqual(result);
|
|
45
44
|
});
|
|
46
45
|
});
|
|
47
46
|
//# sourceMappingURL=dump.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dump.test.js","sourceRoot":"","sources":["../../../test/unit/dump.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"dump.test.js","sourceRoot":"","sources":["../../../test/unit/dump.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACxD,MAAM,GAAG,GAAQ;IACf,aAAa,EAAE,UAAU;IACzB,UAAU,EAAE;QACV;YACE,MAAM,EAAE,OAAO;YACf,IAAI,EAAE;gBACJ;oBACE,MAAM,EAAE,6BAA6B;oBACrC,IAAI,EAAE;wBACJ,kCAAkC;wBAClC,CAAC;wBACD,kEAAkE;wBAClE,kEAAkE;qBACnE;iBACF;gBACD;oBACE,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE,CAAC,YAAY,CAAC;iBACrB;aACF;SACF;KACF;IACD,OAAO,EAAE,CAAC,UAAU,CAAC;IACrB,UAAU,EAAE,CAAC,UAAU,CAAC;CACzB,CAAC;AACF,MAAM,MAAM,GAAG;;;;;;;;;;;CAWd,CAAC;AACF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,66 +1,57 @@
|
|
|
1
|
-
import { assert, expect } from "chai";
|
|
2
1
|
import { checkSignature, createPublicKey, makeKeyPair, makeTuid, randomBytes, sign, verifyKeyPair, } from "../../../src/encryption/encryption";
|
|
3
2
|
import { toBuffer } from "../../../src/formatter";
|
|
4
|
-
describe("Encryption test",
|
|
5
|
-
describe("Random bytes test",
|
|
3
|
+
describe("Encryption test", () => {
|
|
4
|
+
describe("Random bytes test", () => {
|
|
6
5
|
it("randomBytes returns random bytes, different every time", () => {
|
|
7
6
|
const bytes1 = randomBytes(40);
|
|
8
|
-
|
|
7
|
+
expect(bytes1.length).toBe(40);
|
|
9
8
|
const bytes2 = randomBytes(40);
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
expect(bytes2.length).toBe(40);
|
|
10
|
+
expect(bytes1.equals(bytes2)).toBe(false);
|
|
12
11
|
});
|
|
13
12
|
it("randomBytes returns empty buffer of size 0", () => {
|
|
14
|
-
expect(randomBytes(0).length).
|
|
13
|
+
expect(randomBytes(0).length).toBe(0);
|
|
15
14
|
});
|
|
16
15
|
it("randomBytes throws on negative size", () => {
|
|
17
|
-
|
|
18
|
-
randomBytes(-1);
|
|
19
|
-
}, Error);
|
|
16
|
+
expect(() => randomBytes(-1)).toThrow(new RangeError('The value of "size" is out of range. It must be >= 0 && <= 2147483647. Received -1'));
|
|
20
17
|
});
|
|
21
|
-
it("randomBytes
|
|
22
|
-
|
|
18
|
+
it("randomBytes rounds non-integer size down to the nearest integer", () => {
|
|
19
|
+
expect(randomBytes(3.14).length).toBe(3);
|
|
23
20
|
});
|
|
24
21
|
});
|
|
25
|
-
describe("Public key tests",
|
|
22
|
+
describe("Public key tests", () => {
|
|
26
23
|
it("createPublicKey creates a valid secp256k1 pubKey", () => {
|
|
27
24
|
const privKey = toBuffer("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
|
|
28
25
|
const content = toBuffer("hello");
|
|
29
26
|
const pubKey = createPublicKey(privKey);
|
|
30
27
|
const signature = sign(content, privKey);
|
|
31
|
-
|
|
28
|
+
expect(checkSignature(content, pubKey, signature)).toBe(true);
|
|
32
29
|
});
|
|
33
30
|
it("createPublicKey throws on invalid privKey", () => {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
assert.throws(() => {
|
|
38
|
-
createPublicKey(randomBytes(31));
|
|
39
|
-
});
|
|
40
|
-
assert.throws(() => {
|
|
41
|
-
createPublicKey(randomBytes(33));
|
|
42
|
-
});
|
|
31
|
+
expect(() => createPublicKey(randomBytes(0))).toThrow();
|
|
32
|
+
expect(() => createPublicKey(randomBytes(31))).toThrow();
|
|
33
|
+
expect(() => createPublicKey(randomBytes(33))).toThrow();
|
|
43
34
|
});
|
|
44
35
|
});
|
|
45
|
-
describe("Tuid tests",
|
|
36
|
+
describe("Tuid tests", () => {
|
|
46
37
|
it("makes a tuid", () => {
|
|
47
38
|
const tuid = makeTuid();
|
|
48
|
-
|
|
49
|
-
|
|
39
|
+
expect(toBuffer(tuid).length).toBe(16);
|
|
40
|
+
expect(tuid.length).toBe(32);
|
|
50
41
|
});
|
|
51
42
|
});
|
|
52
|
-
describe("Key pair tests",
|
|
43
|
+
describe("Key pair tests", () => {
|
|
53
44
|
it("generates key pairs", () => {
|
|
54
45
|
const user = makeKeyPair();
|
|
55
|
-
|
|
56
|
-
|
|
46
|
+
expect(user.privKey).toBeTruthy();
|
|
47
|
+
expect(user.pubKey).toBeTruthy();
|
|
57
48
|
});
|
|
58
49
|
it("generates key pairs from private key", () => {
|
|
59
50
|
const privKey = toBuffer("0101010101010101010101010101010101010101010101010101010101010101");
|
|
60
51
|
const user = makeKeyPair(privKey);
|
|
61
52
|
const userVerify = verifyKeyPair(privKey);
|
|
62
|
-
expect(user.pubKey).
|
|
63
|
-
expect(user.privKey).
|
|
53
|
+
expect(user.pubKey).toEqual(userVerify.pubKey);
|
|
54
|
+
expect(user.privKey).toEqual(privKey);
|
|
64
55
|
});
|
|
65
56
|
it("verifies the authenticity of a private key", () => {
|
|
66
57
|
const user = {
|
|
@@ -68,7 +59,7 @@ describe("Encryption test", function () {
|
|
|
68
59
|
privKey: toBuffer("0101010101010101010101010101010101010101010101010101010101010101"),
|
|
69
60
|
};
|
|
70
61
|
const verifiedUser = verifyKeyPair(toBuffer("0101010101010101010101010101010101010101010101010101010101010101"));
|
|
71
|
-
expect(JSON.stringify(user)).
|
|
62
|
+
expect(JSON.stringify(user)).toEqual(JSON.stringify(verifiedUser));
|
|
72
63
|
});
|
|
73
64
|
});
|
|
74
65
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encryption.test.js","sourceRoot":"","sources":["../../../../test/unit/encryption/encryption.test.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"encryption.test.js","sourceRoot":"","sources":["../../../../test/unit/encryption/encryption.test.ts"],"names":[],"mappings":"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"}
|