postchain-client 2.1.2 → 2.1.3
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/built/cjs/index.js +3433 -2559
- package/built/cjs/index.js.map +1 -1
- package/built/esm/index.js +4616 -3293
- package/built/esm/index.js.map +1 -1
- package/built/index.js +108 -30
- package/built/index.js.map +1 -1
- package/built/mocks/handlers.js +70 -67
- package/built/mocks/handlers.js.map +1 -1
- package/built/mocks/servers.d.ts +1 -1
- package/built/mocks/servers.js +6 -3
- package/built/mocks/servers.js.map +1 -1
- package/built/resources/testData.js +14 -11
- package/built/resources/testData.js.map +1 -1
- package/built/src/ICCF/IccfProofTxMaterialBuilder.js +35 -29
- package/built/src/ICCF/IccfProofTxMaterialBuilder.js.map +1 -1
- package/built/src/ICCF/error.js +21 -11
- package/built/src/ICCF/error.js.map +1 -1
- package/built/src/ICCF/interfaces.js +2 -1
- package/built/src/ICCF/types.js +2 -1
- package/built/src/ICCF/utils.js +50 -40
- package/built/src/ICCF/utils.js.map +1 -1
- package/built/src/blockchainClient/blockchainClient.js +180 -141
- package/built/src/blockchainClient/blockchainClient.js.map +1 -1
- package/built/src/blockchainClient/clientStub.js +19 -16
- package/built/src/blockchainClient/clientStub.js.map +1 -1
- package/built/src/blockchainClient/enums.js +15 -12
- package/built/src/blockchainClient/enums.js.map +1 -1
- package/built/src/blockchainClient/errors.js +30 -15
- package/built/src/blockchainClient/errors.js.map +1 -1
- package/built/src/blockchainClient/failoverStrategies.js +75 -30
- package/built/src/blockchainClient/failoverStrategies.js.map +1 -1
- package/built/src/blockchainClient/httpUtil.js +45 -9
- package/built/src/blockchainClient/httpUtil.js.map +1 -1
- package/built/src/blockchainClient/interface.js +2 -1
- package/built/src/blockchainClient/nodeManager.js +41 -3
- package/built/src/blockchainClient/nodeManager.js.map +1 -1
- package/built/src/blockchainClient/requestWithFailoverStrategy.js +15 -12
- package/built/src/blockchainClient/requestWithFailoverStrategy.js.map +1 -1
- package/built/src/blockchainClient/types.js +2 -1
- package/built/src/blockchainClient/utils.js +205 -137
- package/built/src/blockchainClient/utils.js.map +1 -1
- package/built/src/blockchainClient/validation/anchoringTransaction.js +11 -8
- package/built/src/blockchainClient/validation/anchoringTransaction.js.map +1 -1
- package/built/src/blockchainClient/validation/blockIdentifier.js +10 -6
- package/built/src/blockchainClient/validation/blockIdentifier.js.map +1 -1
- package/built/src/blockchainClient/validation/bufferSchema.js +6 -3
- package/built/src/blockchainClient/validation/bufferSchema.js.map +1 -1
- package/built/src/blockchainClient/validation/merkleHash.js +10 -6
- package/built/src/blockchainClient/validation/merkleHash.js.map +1 -1
- package/built/src/blockchainClient/validation/networkSettings.js +35 -30
- package/built/src/blockchainClient/validation/networkSettings.js.map +1 -1
- package/built/src/blockchainClient/validation/rawGtx.js +18 -15
- package/built/src/blockchainClient/validation/rawGtx.js.map +1 -1
- package/built/src/blockchainClient/validation/requests.js +108 -87
- package/built/src/blockchainClient/validation/requests.js.map +1 -1
- package/built/src/blockchainClient/validation/signMethod.d.ts +8 -8
- package/built/src/blockchainClient/validation/signMethod.js +15 -11
- package/built/src/blockchainClient/validation/signMethod.js.map +1 -1
- package/built/src/blockchainClient/validation/transactionStatusReponse.js +11 -8
- package/built/src/blockchainClient/validation/transactionStatusReponse.js.map +1 -1
- package/built/src/blockchainClient/validation/txRid.d.ts +1 -1
- package/built/src/blockchainClient/validation/txRid.js +10 -6
- package/built/src/blockchainClient/validation/txRid.js.map +1 -1
- package/built/src/blockchainClient/validation/validation.types.js +2 -1
- package/built/src/customError/index.js +5 -1
- package/built/src/customError/index.js.map +1 -1
- package/built/src/encryption/encryption.js +74 -27
- package/built/src/encryption/encryption.js.map +1 -1
- package/built/src/encryption/errors.js +7 -2
- package/built/src/encryption/errors.js.map +1 -1
- package/built/src/encryption/types.js +2 -1
- package/built/src/formatter.js +38 -22
- package/built/src/formatter.js.map +1 -1
- package/built/src/gtv/definition.js +9 -6
- package/built/src/gtv/definition.js.map +1 -1
- package/built/src/gtv/index.js +44 -6
- package/built/src/gtv/index.js.map +1 -1
- package/built/src/gtv/types.js +2 -1
- package/built/src/gtx/errors.js +14 -6
- package/built/src/gtx/errors.js.map +1 -1
- package/built/src/gtx/gtx.js +92 -41
- package/built/src/gtx/gtx.js.map +1 -1
- package/built/src/gtx/index.js +39 -2
- package/built/src/gtx/index.js.map +1 -1
- package/built/src/gtx/serialization.js +26 -18
- package/built/src/gtx/serialization.js.map +1 -1
- package/built/src/gtx/types.js +2 -1
- package/built/src/logger.js +19 -9
- package/built/src/logger.js.map +1 -1
- package/built/src/promiEvent/promiEventEmitter.js +7 -3
- package/built/src/promiEvent/promiEventEmitter.js.map +1 -1
- package/built/src/promiEvent/promiEvents.js +6 -2
- package/built/src/promiEvent/promiEvents.js.map +1 -1
- package/built/src/utils/bufferUtils.js +6 -3
- package/built/src/utils/bufferUtils.js.map +1 -1
- package/built/src/utils/calculateTransactionRid.js +8 -5
- package/built/src/utils/calculateTransactionRid.js.map +1 -1
- package/built/src/utils/constants.js +4 -1
- package/built/src/utils/constants.js.map +1 -1
- package/built/src/utils/decodeTransactionToGtx.js +41 -5
- package/built/src/utils/decodeTransactionToGtx.js.map +1 -1
- package/built/src/utils/dump.js +13 -9
- package/built/src/utils/dump.js.map +1 -1
- package/built/src/utils/encodeTransaction.js +6 -3
- package/built/src/utils/encodeTransaction.js.map +1 -1
- package/built/src/utils/http-utils.js +17 -7
- package/built/src/utils/http-utils.js.map +1 -1
- package/built/test/common/mocks.js +147 -111
- package/built/test/common/mocks.js.map +1 -1
- package/built/test/common/serializationtestobjects.js +13 -7
- package/built/test/common/serializationtestobjects.js.map +1 -1
- package/built/test/common/setups.d.ts +1 -1
- package/built/test/common/setups.js +95 -46
- package/built/test/common/setups.js.map +1 -1
- package/built/test/common/signatures.js +47 -7
- package/built/test/common/signatures.js.map +1 -1
- package/built/test/common/testData.js +4 -1
- package/built/test/common/testData.js.map +1 -1
- package/built/test/common/validationMocks.js +52 -49
- package/built/test/common/validationMocks.js.map +1 -1
- package/built/test/integration/clientGetBlockInfo.test.js +4 -2
- package/built/test/integration/clientGetBlockInfo.test.js.map +1 -1
- package/built/test/integration/clientGetRejectedTransactions.test.js +9 -7
- package/built/test/integration/clientGetRejectedTransactions.test.js.map +1 -1
- package/built/test/integration/clientGetTransaction.test.js +8 -6
- package/built/test/integration/clientGetTransaction.test.js.map +1 -1
- package/built/test/integration/clientGetTransactionStatus.test.js +51 -16
- package/built/test/integration/clientGetTransactionStatus.test.js.map +1 -1
- package/built/test/integration/clientGetWaitingTransaction.test.js +13 -11
- package/built/test/integration/clientGetWaitingTransaction.test.js.map +1 -1
- package/built/test/integration/clientGetWaitingTransactions.test.js +9 -7
- package/built/test/integration/clientGetWaitingTransactions.test.js.map +1 -1
- package/built/test/integration/clientIntegration.test.js +12 -10
- package/built/test/integration/clientIntegration.test.js.map +1 -1
- package/built/test/integration/clientQuery.test.js +61 -26
- package/built/test/integration/clientQuery.test.js.map +1 -1
- package/built/test/integration/clientSendTransaction.test.js +23 -21
- package/built/test/integration/clientSendTransaction.test.js.map +1 -1
- package/built/test/integration/clientSignAndSendUniqueTransaction.test.js +23 -21
- package/built/test/integration/clientSignAndSendUniqueTransaction.test.js.map +1 -1
- package/built/test/integration/clientSignTransaction.test.js +24 -22
- package/built/test/integration/clientSignTransaction.test.js.map +1 -1
- package/built/test/integration/clientUtils.test.js +12 -10
- package/built/test/integration/clientUtils.test.js.map +1 -1
- package/built/test/integration/createClientIntegration.test.js +28 -26
- package/built/test/integration/createClientIntegration.test.js.map +1 -1
- package/built/test/integration/encodeTransaction.test.js +10 -8
- package/built/test/integration/encodeTransaction.test.js.map +1 -1
- package/built/test/integration/failoverStrategiesWithSmartTimeouts.test.js +45 -10
- package/built/test/integration/failoverStrategiesWithSmartTimeouts.test.js.map +1 -1
- package/built/test/integration/getTransactionsInfo.test.js +15 -13
- package/built/test/integration/getTransactionsInfo.test.js.map +1 -1
- package/built/test/integration/signAndSendUniqueTransaction.test.js +16 -14
- package/built/test/integration/signAndSendUniqueTransaction.test.js.map +1 -1
- package/built/test/integrationChromiaNetwork/createIccfProofTx.test.js +24 -22
- package/built/test/integrationChromiaNetwork/createIccfProofTx.test.js.map +1 -1
- package/built/test/integrationChromiaNetwork/getAnchoringStatusForBlockRid.test.js +15 -13
- package/built/test/integrationChromiaNetwork/getAnchoringStatusForBlockRid.test.js.map +1 -1
- package/built/test/integrationChromiaNetwork/getTransactionConfirmationLevel.test.js +10 -8
- package/built/test/integrationChromiaNetwork/getTransactionConfirmationLevel.test.js.map +1 -1
- package/built/test/integrationChromiaNetwork/getTransactionStatus.test.js +16 -14
- package/built/test/integrationChromiaNetwork/getTransactionStatus.test.js.map +1 -1
- package/built/test/integrationChromiaNetwork/isBlockAnchored.test.js +16 -14
- package/built/test/integrationChromiaNetwork/isBlockAnchored.test.js.map +1 -1
- package/built/test/integrationChromiaNetwork/merkleHashIntegration.test.js +21 -19
- package/built/test/integrationChromiaNetwork/merkleHashIntegration.test.js.map +1 -1
- package/built/test/integrationChromiaNetwork/nodeDiscovery.test.js +15 -10
- package/built/test/integrationChromiaNetwork/nodeDiscovery.test.js.map +1 -1
- package/built/test/integrationChromiaNetwork/requestWithFailoverStrategy.test.js +74 -36
- package/built/test/integrationChromiaNetwork/requestWithFailoverStrategy.test.js.map +1 -1
- package/built/test/integrationChromiaNetwork/signAndSendUniqueTransaction.test.js +17 -15
- package/built/test/integrationChromiaNetwork/signAndSendUniqueTransaction.test.js.map +1 -1
- package/built/test/manual/iccfManually.test.js +59 -24
- package/built/test/manual/iccfManually.test.js.map +1 -1
- package/built/test/pcctf/getSuites.test.js +27 -25
- package/built/test/pcctf/getSuites.test.js.map +1 -1
- package/built/test/pcctf/helpers.js +38 -23
- package/built/test/pcctf/helpers.js.map +1 -1
- package/built/test/unit/ICCF/iccf.test.js +77 -75
- package/built/test/unit/ICCF/iccf.test.js.map +1 -1
- package/built/test/unit/ICCF/iccfProofMaterialBuilder.test.js +93 -58
- package/built/test/unit/ICCF/iccfProofMaterialBuilder.test.js.map +1 -1
- package/built/test/unit/blockchainClient/client.getRejectedTransactions.test.js +12 -10
- package/built/test/unit/blockchainClient/client.getRejectedTransactions.test.js.map +1 -1
- package/built/test/unit/blockchainClient/client.getWaitingTransaction.test.js +14 -12
- package/built/test/unit/blockchainClient/client.getWaitingTransaction.test.js.map +1 -1
- package/built/test/unit/blockchainClient/client.getWaitingTransactions.test.js +10 -8
- package/built/test/unit/blockchainClient/client.getWaitingTransactions.test.js.map +1 -1
- package/built/test/unit/blockchainClient/client.test.js +89 -54
- package/built/test/unit/blockchainClient/client.test.js.map +1 -1
- package/built/test/unit/blockchainClient/clientCustomStatusCodes.test.js +26 -24
- package/built/test/unit/blockchainClient/clientCustomStatusCodes.test.js.map +1 -1
- package/built/test/unit/blockchainClient/getAnchoringStatusForBlockRid.test.js +52 -17
- package/built/test/unit/blockchainClient/getAnchoringStatusForBlockRid.test.js.map +1 -1
- package/built/test/unit/blockchainClient/getSystemAnchoringTransactionConfirmation.test.js +46 -11
- package/built/test/unit/blockchainClient/getSystemAnchoringTransactionConfirmation.test.js.map +1 -1
- package/built/test/unit/blockchainClient/getTransactionConfirmationLevel.test.js +64 -29
- package/built/test/unit/blockchainClient/getTransactionConfirmationLevel.test.js.map +1 -1
- package/built/test/unit/blockchainClient/sendTransaction.test.js +191 -156
- package/built/test/unit/blockchainClient/sendTransaction.test.js.map +1 -1
- package/built/test/unit/blockchainClient/setMerkleVersion.test.js +15 -13
- package/built/test/unit/blockchainClient/setMerkleVersion.test.js.map +1 -1
- package/built/test/unit/blockchainClient/signAndSendUniqueTransactionPromiEvents.test.js +21 -19
- package/built/test/unit/blockchainClient/signAndSendUniqueTransactionPromiEvents.test.js.map +1 -1
- package/built/test/unit/blockchainClient/statusPollIntervals.test.js +45 -10
- package/built/test/unit/blockchainClient/statusPollIntervals.test.js.map +1 -1
- package/built/test/unit/blockchainClient/util.test.js +66 -31
- package/built/test/unit/blockchainClient/util.test.js.map +1 -1
- package/built/test/unit/decodeTransactionToGtx.test.js +6 -4
- package/built/test/unit/decodeTransactionToGtx.test.js.map +1 -1
- package/built/test/unit/dump.test.js +6 -4
- package/built/test/unit/dump.test.js.map +1 -1
- package/built/test/unit/encryption/encryption.test.js +26 -24
- package/built/test/unit/encryption/encryption.test.js.map +1 -1
- package/built/test/unit/failoverStrategies.test.js +114 -79
- package/built/test/unit/failoverStrategies.test.js.map +1 -1
- package/built/test/unit/failoverStrategies.timeout.test.js +90 -55
- package/built/test/unit/failoverStrategies.timeout.test.js.map +1 -1
- package/built/test/unit/formatter.test.js +23 -21
- package/built/test/unit/formatter.test.js.map +1 -1
- package/built/test/unit/gtv/gtvHash.test.js +13 -11
- package/built/test/unit/gtv/gtvHash.test.js.map +1 -1
- package/built/test/unit/gtx/checkGTXSignature.test.js +18 -16
- package/built/test/unit/gtx/checkGTXSignature.test.js.map +1 -1
- package/built/test/unit/gtx/newSignatureProvider.test.js +14 -12
- package/built/test/unit/gtx/newSignatureProvider.test.js.map +1 -1
- package/built/test/unit/gtx/serialization.test.js +47 -42
- package/built/test/unit/gtx/serialization.test.js.map +1 -1
- package/built/test/unit/httpUtil.test.js +13 -11
- package/built/test/unit/httpUtil.test.js.map +1 -1
- package/built/test/unit/httpUtil.timeout.test.js +12 -10
- package/built/test/unit/httpUtil.timeout.test.js.map +1 -1
- package/built/test/unit/logger.test.js +42 -40
- package/built/test/unit/logger.test.js.map +1 -1
- package/built/test/unit/networkErrorDetection.test.js +39 -37
- package/built/test/unit/networkErrorDetection.test.js.map +1 -1
- package/built/test/unit/nodeMananger.test.js +19 -17
- package/built/test/unit/nodeMananger.test.js.map +1 -1
- package/built/test/unit/setOrdering.test.js +7 -5
- package/built/test/unit/setOrdering.test.js.map +1 -1
- package/built/test/unit/smartTimeouts.test.js +20 -18
- package/built/test/unit/smartTimeouts.test.js.map +1 -1
- package/built/test/unit/stickyNode.test.js +19 -17
- package/built/test/unit/stickyNode.test.js.map +1 -1
- package/built/test/unit/universalNodeRecovery.test.js +54 -19
- package/built/test/unit/universalNodeRecovery.test.js.map +1 -1
- package/built/test/unit/validation/anchoringTransaction.test.js +12 -10
- package/built/test/unit/validation/anchoringTransaction.test.js.map +1 -1
- package/built/test/unit/validation/blockIdentifier.test.js +10 -8
- package/built/test/unit/validation/blockIdentifier.test.js.map +1 -1
- package/built/test/unit/validation/bufferSchema.test.js +8 -6
- package/built/test/unit/validation/bufferSchema.test.js.map +1 -1
- package/built/test/unit/validation/networkSettings.test.js +14 -12
- package/built/test/unit/validation/networkSettings.test.js.map +1 -1
- package/built/test/unit/validation/rawGtx.test.js +24 -22
- package/built/test/unit/validation/rawGtx.test.js.map +1 -1
- package/built/test/unit/validation/requests.test.js +56 -54
- package/built/test/unit/validation/requests.test.js.map +1 -1
- package/built/test/unit/validation/signMethod.test.js +11 -9
- package/built/test/unit/validation/signMethod.test.js.map +1 -1
- package/built/test/unit/validation/statusObject.test.js +21 -19
- package/built/test/unit/validation/statusObject.test.js.map +1 -1
- package/built/test/unit/validation/txRid.test.js +10 -8
- package/built/test/unit/validation/txRid.test.js.map +1 -1
- package/built/umd/index.js +4625 -3372
- package/built/umd/index.js.map +1 -1
- package/changelog.md +5 -4
- package/package.json +2 -2
package/built/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/gtv/definition.js","../src/customError/index.js","../src/gtx/errors.js","../src/blockchainClient/validation/rawGtx.js","../src/utils/bufferUtils.js","../src/formatter.js","../src/gtx/serialization.js","../src/utils/constants.js","../src/gtv/index.js","../src/encryption/errors.js","../src/encryption/encryption.js","../src/gtx/index.js","../src/gtx/gtx.js","../src/logger.js","../src/blockchainClient/errors.js","../src/blockchainClient/enums.js","../src/blockchainClient/nodeManager.js","../src/blockchainClient/validation/bufferSchema.js","../src/blockchainClient/validation/txRid.js","../src/blockchainClient/validation/anchoringTransaction.js","../src/ICCF/error.js","../src/blockchainClient/validation/requests.js","../src/utils/encodeTransaction.js","../src/blockchainClient/validation/merkleHash.js","../src/blockchainClient/httpUtil.js","../src/utils/http-utils.js","../src/blockchainClient/failoverStrategies.js","../src/blockchainClient/requestWithFailoverStrategy.js","../src/blockchainClient/utils.js","../src/ICCF/utils.js","../src/ICCF/IccfProofTxMaterialBuilder.js","../src/promiEvent/promiEventEmitter.js","../src/promiEvent/promiEvents.js","../src/blockchainClient/validation/blockIdentifier.js","../src/blockchainClient/validation/networkSettings.js","../src/blockchainClient/validation/signMethod.js","../src/blockchainClient/validation/transactionStatusReponse.js","../src/blockchainClient/blockchainClient.js","../src/blockchainClient/clientStub.js","../src/utils/calculateTransactionRid.js","../src/utils/dump.js","../src/utils/decodeTransactionToGtx.js"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\n// @ts-nocheck\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst asn = require(\"@chromia/asn1/lib/asn1\");\nexport const ASNDictPair = asn.define(\"DictPair\", function () {\n this.seq().obj(this.key(\"name\").utf8str(), this.key(\"value\").use(rawGTV));\n});\nexport const rawGTV = asn.define(\"GtvValue\", function () {\n this.choice({\n null: this.explicit(0).null_(),\n byteArray: this.explicit(1).octstr(),\n string: this.explicit(2).utf8str(),\n integer: this.explicit(3).int(),\n dict: this.explicit(4).seqof(ASNDictPair),\n array: this.explicit(5).seqof(rawGTV),\n bigInteger: this.explicit(6).int(),\n });\n});\nexport const ASNBuffer = asn.define(\"Buffer\", function () {\n this.octstr();\n});\n//# sourceMappingURL=definition.js.map","export class CustomError extends Error {\n constructor(message, status) {\n super(message);\n this.name = this.constructor.name;\n this.status = status;\n }\n}\n//# sourceMappingURL=index.js.map","import { CustomError } from \"../customError\";\nexport class UnexpectedArgumentTypeError extends CustomError {\n constructor(typedArg) {\n super(`Cannot parse typedArg ${JSON.stringify(typedArg)}. Unknown type ${typedArg.type}`, 400);\n }\n}\nexport class MissingGtxException extends CustomError {\n constructor() {\n super(`Missing instance of gtx protocol (used for communicating with postchain) to add operation to`, 400);\n }\n}\nexport class AlreadySignedTransactionException extends CustomError {\n constructor(operation) {\n super(`Cannot add ${operation} calls to an already signed gtx`, 400);\n }\n}\nexport class NumberOfSignersAndSignaturesException extends CustomError {\n constructor() {\n super(`Not matching number of signers and signatures`, 400);\n }\n}\nexport class MissingSignerException extends CustomError {\n constructor() {\n super(`No such signer, remember to add signer to transaction before adding a signature`, 400);\n }\n}\n//# sourceMappingURL=errors.js.map","import { Buffer } from \"buffer\";\nimport { z } from \"zod\";\nconst bufferSchema = z.custom(val => Buffer.isBuffer(val), {\n message: \"Expected Buffer\",\n});\nconst rawGtvSchema = z.lazy(() => z.union([\n z.null(),\n z.boolean(),\n bufferSchema,\n z.string(),\n z.number(),\n z.bigint(),\n z.array(rawGtvSchema),\n z.record(rawGtvSchema),\n]));\nconst rawGtxOpSchema = z.tuple([z.string(), z.array(rawGtvSchema)]);\nconst rawGtxBodySchema = z.tuple([bufferSchema, z.array(rawGtxOpSchema), z.array(bufferSchema)]);\nconst rawGtxSchema = z.tuple([rawGtxBodySchema, z.array(bufferSchema)]);\nexport function isRawGtx(value) {\n const result = rawGtxSchema.safeParse(value);\n return result.success;\n}\n//# sourceMappingURL=rawGtx.js.map","import { Buffer } from \"buffer\";\n/**\n * Type guard to check if a value is a Buffer instance.\n * Works correctly with Buffer imported from the 'buffer' package.\n */\nexport function isBuffer(value) {\n return Buffer.isBuffer(value);\n}\n//# sourceMappingURL=bufferUtils.js.map","import { Buffer } from \"buffer\";\nimport { isRawGtx } from \"./blockchainClient/validation/rawGtx\";\nimport { isBuffer } from \"./utils/bufferUtils\";\nexport function pgBytes(buffer) {\n if (!Buffer.isBuffer(buffer)) {\n throw new PgBytesInputException(buffer);\n }\n return `\\\\x${buffer.toString(\"hex\")}`;\n}\n/**\n * Converts hex string to Buffer\n * @param key: string\n * @returns {Buffer}\n */\nexport function toBuffer(key) {\n return Buffer.from(key, \"hex\");\n}\n/**\n * Converts Buffer to hex string\n * @param buffer: Buffer\n * @returns {string}\n */\nexport function toString(buffer) {\n return buffer.toString(\"hex\").toUpperCase();\n}\nexport function toQueryObjectGTV(nameOrObject, queryArguments) {\n if (typeof nameOrObject === \"string\") {\n return [nameOrObject, Object.assign({}, queryArguments)];\n }\n else {\n const { name, args } = nameOrObject;\n return [name, args || {}];\n }\n}\nexport class PgBytesInputException extends Error {\n constructor(buffer) {\n super(`util.pgBytes expects a buffer, but got ${typeof buffer}`);\n }\n}\nexport function ensureBuffer(value) {\n if (isBuffer(value)) {\n return value;\n }\n return toBuffer(value);\n}\nexport function ensureString(value) {\n if (typeof value === \"string\") {\n return value.toUpperCase();\n }\n else {\n return toString(value);\n }\n}\nexport function checkGtvType(value) {\n try {\n if (value == null) {\n return true;\n }\n if (Buffer.isBuffer(value)) {\n return true;\n }\n if (typeof value === \"string\" || typeof value === \"bigint\") {\n return true;\n }\n if (typeof value === \"number\") {\n if (!Number.isInteger(value)) {\n throw Error(\"User error: Only integers are supported\");\n }\n return true;\n }\n if (Array.isArray(value)) {\n return value.every(item => checkGtvType(item));\n }\n if (typeof value === \"object\") {\n return Object.values(value).every(val => checkGtvType(val));\n }\n }\n catch (error) {\n throw new Error(`Failed to check type: ${error}`);\n }\n return false;\n}\nexport function rawGtxToGtx(rawGtx) {\n const rawGtxBody = rawGtx[0];\n const signatures = rawGtx[1];\n const gtxBody = {\n blockchainRid: rawGtxBody[0],\n operations: rawGtxBody[1].map((operation) => ({\n opName: operation[0],\n args: operation[1],\n })),\n signers: rawGtxBody[2],\n };\n return {\n blockchainRid: gtxBody.blockchainRid,\n operations: gtxBody.operations,\n signers: gtxBody.signers,\n signatures,\n };\n}\nexport function rawGtxToRawGtxBody(rawGtx) {\n return rawGtx[0];\n}\nexport function checkGtxType(value) {\n if (!isRawGtx(value))\n return false;\n try {\n rawGtxToGtx(value);\n return true;\n }\n catch (error) {\n return false;\n }\n}\nexport function removeDuplicateSigners(signers) {\n const signersAsString = [];\n signers.forEach(item => {\n const itemAsString = item.toString(\"hex\");\n if (!signersAsString.includes(itemAsString)) {\n signersAsString.push(itemAsString);\n }\n });\n const result = [];\n signersAsString.forEach(item => {\n result.push(Buffer.from(item, \"hex\"));\n });\n return result;\n}\nexport function matchRellErrorString(rellError) {\n const parsed = rellError.match(/\\[([^\\]]+)\\]\\sOperation\\s'([^']+)'\\sfailed:\\s(.+)$/);\n if (!parsed)\n return {};\n const [rellLine, operation, shortReason] = parsed.slice(1);\n return { shortReason, rellLine, operation };\n}\n//# sourceMappingURL=formatter.js.map","import { Buffer } from \"buffer\";\nimport { rawGTV } from \"../gtv/definition\";\nimport { BN } from \"bn.js\";\nimport { UnexpectedArgumentTypeError } from \"./errors\";\nimport { checkGtxType } from \"../formatter\";\nexport function encodeValue(rawGtv) {\n return rawGTV.encode(createTypedArg(rawGtv));\n}\nexport function encodeValueGtx(rawGtx) {\n return encodeValue(rawGtx);\n}\nexport function decodeValue(bytes) {\n try {\n const obj = rawGTV.decode(bytes);\n return parseValue(obj);\n }\n catch (error) {\n throw new Error(`Invalid GTV data. ${error}`);\n }\n}\nexport function decodeValueGtx(bytes) {\n const decodedValue = decodeValue(bytes);\n if (!checkGtxType(decodedValue)) {\n throw new Error(`Unexpected type of value: ${decodedValue}, expected decoded value to be of type RawGtx`);\n }\n return decodedValue;\n}\nexport function parseValue(typedArg) {\n var _a, _b;\n if (typedArg.type === \"null\") {\n return null;\n }\n else if (typedArg.type === \"byteArray\") {\n return typedArg.value;\n }\n else if (typedArg.type === \"string\") {\n return typedArg.value;\n }\n else if (typedArg.type === \"integer\") {\n return Number(typedArg.value);\n }\n else if (typedArg.type === \"array\") {\n const arrayValue = typedArg.value;\n return arrayValue.map((item) => parseValue(item));\n }\n else if (typedArg.type === \"bigInteger\") {\n return BigInt((_b = (_a = typedArg.value) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : \"\");\n }\n else if (typedArg.type === \"dict\") {\n const arrayValue = typedArg.value;\n const result = {};\n arrayValue.forEach((pair) => {\n result[pair.name] = parseValue(pair.value);\n });\n return result;\n }\n else {\n throw new UnexpectedArgumentTypeError(typedArg);\n }\n}\nexport function createTypedArg(value) {\n try {\n if (value == null) {\n return { type: \"null\", value: null };\n }\n if (Buffer.isBuffer(value)) {\n return { type: \"byteArray\", value: value };\n }\n if (typeof value === \"boolean\") {\n return { type: \"integer\", value: value ? 1 : 0 };\n }\n if (typeof value === \"string\") {\n return { type: \"string\", value: value };\n }\n if (typeof value === \"number\") {\n if (!Number.isInteger(value)) {\n throw Error(\"User error: Only integers are supported\");\n }\n return { type: \"integer\", value: new BN(value) };\n }\n if (typeof value === \"bigint\") {\n return { type: \"bigInteger\", value: new BN(value.toString()) };\n }\n if (value.constructor === Array) {\n return {\n type: \"array\",\n value: value.map(item => createTypedArg(item)),\n };\n }\n if (typeof value === \"object\") {\n let valueAsDictPair = value;\n if (isDictPairWithStringKey(valueAsDictPair)) {\n valueAsDictPair = sortDictPairByKey(valueAsDictPair);\n }\n return {\n type: \"dict\",\n value: Object.keys(valueAsDictPair).map(function (key) {\n return { name: key, value: createTypedArg(valueAsDictPair[key]) };\n }),\n };\n }\n }\n catch (error) {\n const message = value ? value.toString() : \"RawGtv\";\n throw new Error(`Failed to encode ${message}: ${error}`);\n }\n throw new Error(`value ${value} have unsupported type: ${typeof value}`);\n}\nfunction isDictPairWithStringKey(obj) {\n for (const key in obj) {\n if (typeof key !== \"string\") {\n return false;\n }\n }\n return true;\n}\nfunction sortDictPairByKey(dict) {\n const sortedArray = Object.entries(dict).sort(([keyA], [keyB]) => {\n if (keyA < keyB) {\n return -1;\n }\n if (keyA > keyB) {\n return 1;\n }\n return 0;\n });\n const sortedDict = {};\n for (const [key, value] of sortedArray) {\n sortedDict[key] = value;\n }\n return sortedDict;\n}\n//# sourceMappingURL=serialization.js.map","export const MERKLE_HASH_VERSIONS = {\n ONE: 1,\n TWO: 2,\n UNSET: NaN,\n};\n//# sourceMappingURL=constants.js.map","import { gtvHash } from \"merklehashts\";\nimport * as serialization from \"../gtx/serialization\";\nimport { MERKLE_HASH_VERSIONS } from \"../utils/constants\";\nconst gtvHash2 = (obj, merkleHashVersion) => {\n if (!Object.values(MERKLE_HASH_VERSIONS).includes(merkleHashVersion)) {\n throw new Error(\"Merkle hash version is not valid\");\n }\n if (isNaN(merkleHashVersion)) {\n throw new Error(\"Merkle hash version is not set\");\n }\n return gtvHash(obj, merkleHashVersion);\n};\nconst encode = serialization.encodeValue;\nconst decode = serialization.decodeValue;\nexport { encode, decode, gtvHash2 as gtvHash };\n//# sourceMappingURL=index.js.map","export class PrivKeyFormatException extends Error {\n constructor(privKey) {\n super(`Invalid key length. Expected 32, but got ${privKey.length}`);\n }\n}\nexport class MissingPrivKeyArgumentException extends Error {\n constructor() {\n super(`Missing argument privKey`);\n }\n}\n//# sourceMappingURL=errors.js.map","import { Buffer } from \"buffer\";\nimport * as crypto from \"crypto\";\nimport * as secp256k1 from \"secp256k1\";\nimport { ensureBuffer } from \"../formatter\";\nimport { MissingPrivKeyArgumentException, PrivKeyFormatException } from \"./errors\";\nexport function createPublicKey(privKey) {\n validatePrivKeyFormat(privKey);\n return Buffer.from(secp256k1.publicKeyCreate(privKey, true).buffer);\n}\nexport function randomBytes(size) {\n return crypto.randomBytes(size);\n}\nexport function sha256(buffer) {\n return crypto.createHash(\"sha256\").update(buffer).digest();\n}\nexport const hash256 = sha256;\nexport function hashConcat(items) {\n return hash256(Buffer.concat(items));\n}\n/**\n * @param content the content that the signature signs. It will be digested before validating.\n * @param pubKey The pubKey to validate the signature with\n * @param signature the signature to validate\n *\n * @return true if signature ok, false otherwise\n */\nexport function checkSignature(content, pubKey, signature) {\n const digest = hash256(content);\n return checkDigestSignature(digest, pubKey, signature);\n}\n/**\n * @param digest the signed digest. It will not be digested before validating.\n * @param pubKey The pubKey to validate the signature with\n * @param signature the signature to validate\n *\n * @return true if signature ok, false otherwise\n */\nexport function checkDigestSignature(digest, pubKey, signature) {\n return secp256k1.ecdsaVerify(signature, digest, pubKey);\n}\n/**\n * @param content to sign. It will be digested before signing.\n * @param privKey The private key to sign the content with\n *\n * @return the signature\n */\nexport function sign(content, privKey) {\n validatePrivKeyFormat(privKey);\n const digestBuffer = sha256(content);\n return signDigest(digestBuffer, privKey);\n}\n/**\n * @param digestBuffer to sign. It will not be digested before signing.\n * @param privKey The private key to sign the digest with\n *\n * @return the signature\n */\nexport function signDigest(digestBuffer, privKey) {\n return Buffer.from(secp256k1.ecdsaSign(digestBuffer, privKey).signature);\n}\n/**\n * Creates a key pair (which usually represents one user)\n * @param privKey to create key pair based on\n * @returns {{pubKey: Buffer, privKey: Buffer}}\n */\nexport function makeKeyPair(privKey) {\n let pubKey;\n if (privKey) {\n privKey = ensureBuffer(privKey);\n pubKey = createPublicKey(privKey);\n }\n else {\n do {\n privKey = randomBytes(32);\n } while (!secp256k1.privateKeyVerify(privKey));\n pubKey = Buffer.from(secp256k1.publicKeyCreate(privKey).buffer);\n }\n return { pubKey, privKey };\n}\n/**\n * Generates a 16bytes TUID (Text unique ID) (a 32characters long string)\n * @returns string\n */\nexport function makeTuid() {\n return randomBytes(16).toString(\"hex\");\n}\n/**\n * Verify that keypair is correct. Providing the private key, this function returns its associated public key\n * @param privKey: Buffer\n * @returns {{pubKey: Buffer, privKey: Buffer}}\n */\nexport function verifyKeyPair(privKey) {\n validatePrivKeyFormat(privKey);\n const pubKey = Buffer.from(secp256k1.publicKeyCreate(privKey).buffer);\n return { pubKey, privKey };\n}\nfunction validatePrivKeyFormat(privKey) {\n if (!privKey) {\n throw new MissingPrivKeyArgumentException();\n }\n if (!Buffer.isBuffer(privKey) || privKey.length !== 32) {\n throw new PrivKeyFormatException(privKey);\n }\n}\n//# sourceMappingURL=encryption.js.map","import * as serialization from \"./serialization\";\nconst encode = serialization.encodeValueGtx;\nconst decode = serialization.decodeValueGtx;\nexport { encode, decode };\n//# sourceMappingURL=index.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { Buffer } from \"buffer\";\nimport * as gtv from \"../gtv\";\nimport { checkDigestSignature, createPublicKey, makeKeyPair, signDigest, } from \"../encryption/encryption\";\nimport { AlreadySignedTransactionException, MissingGtxException, MissingSignerException, } from \"./errors\";\nimport { encode as gtxEncode, decode as gtxDecode } from \"./index\";\nimport { ensureBuffer } from \"../formatter\";\nimport { isBuffer } from \"../utils/bufferUtils\";\nexport function emptyGtx(blockchainRid) {\n return { blockchainRid, operations: [], signers: [] };\n}\n/**\n * Adds a function call to a GTX. Creates a new GTX if none specified.\n * This function will throw Error if gtx is already signed\n * @param opName the name of the function to call\n * @param args the array of arguments of the function call. If no args, this must be an empty array\n * @param gtx the function call will be added to this gtx\n * @returns the gtx\n * @throws if gtx is null or if gtx is already signed\n */\nexport function addTransactionToGtx(opName, args, gtx) {\n if (gtx == null) {\n throw new MissingGtxException();\n }\n if (gtx.signatures) {\n throw new AlreadySignedTransactionException(\"function\");\n }\n gtx.operations.push({ opName: opName, args: args });\n return gtx;\n}\nexport function addSignerToGtx(signer, gtx) {\n if (gtx.signatures) {\n throw new AlreadySignedTransactionException(\"signer\");\n }\n gtx.signers.push(signer);\n}\n/**\n * Serializes the gtx to get tx hash\n * @param gtx the gtx to serialize\n */\nexport function getDigest(gtx, merkleHashVersion) {\n return gtv.gtvHash(gtxToRawGtxBody(gtx), merkleHashVersion);\n}\n/**\n * Serializes the gtx for signing\n * @param gtx the gtx to serialize\n */\nexport function getDigestToSign(gtx, merkleHashVersion) {\n return gtv.gtvHash(gtxToRawGtxBody(gtx), merkleHashVersion);\n}\nexport function getDigestToSignFromRawGtxBody(gtxBody, merkleHashVersion) {\n return gtv.gtvHash(gtxBody, merkleHashVersion);\n}\nexport function gtxToRawGtxBody(gtx) {\n return [\n gtx.blockchainRid,\n gtx.operations.map((op) => [op.opName, op.args]),\n gtx.signers,\n ];\n}\nexport function gtxToRawGtx(gtx) {\n var _a;\n return [\n [\n gtx.blockchainRid,\n gtx.operations.map((op) => [op.opName, op.args]),\n gtx.signers,\n ],\n (_a = gtx.signatures) !== null && _a !== void 0 ? _a : [],\n ];\n}\nexport function sign(gtx, privOrSigProv, merkleHashVersion, pubKey) {\n return __awaiter(this, void 0, void 0, function* () {\n if (isBuffer(privOrSigProv)) {\n const digestToSign = getDigestToSign(gtx, merkleHashVersion);\n const signature = signDigest(digestToSign, privOrSigProv);\n return addSignature(pubKey || makeKeyPair(privOrSigProv).pubKey, signature, gtx);\n }\n else {\n // Removes signatures and extract the rawgtxBody\n const rawGtxBody = gtxToRawGtxBody(gtx);\n const signature = yield privOrSigProv.sign(rawGtxBody, merkleHashVersion);\n return addSignature(privOrSigProv.pubKey, signature, gtx);\n }\n });\n}\n/**\n * Adds a signature to the gtx\n */\nexport function addSignature(pubKeyBuffer, signatureBuffer, gtx) {\n if (!gtx.signatures) {\n gtx.signatures = Array(gtx.signers.length);\n }\n const signerIndex = gtx.signers.findIndex((signer) => pubKeyBuffer.equals(signer));\n if (signerIndex === -1) {\n throw new MissingSignerException();\n }\n gtx.signatures[signerIndex] = signatureBuffer;\n return gtx;\n}\nexport function serialize(gtx) {\n if (!gtx.signatures) {\n // TODO\n // The gtx is not signed, but we must include\n // the signatures attribute, so let's add that.\n gtx.signatures = [];\n }\n return gtxEncode([gtxToRawGtxBody(gtx), gtx.signatures]);\n}\nexport function deserialize(gtxBytes) {\n const deserializedTx = gtxDecode(gtxBytes);\n const body = deserializedTx[0];\n const gtvTxBody = {\n blockchainRid: body[0],\n operations: body[1].map((operation) => ({\n opName: operation[0],\n args: operation[1],\n })),\n signers: body[2],\n };\n const signatures = deserializedTx[1];\n return {\n blockchainRid: gtvTxBody.blockchainRid,\n operations: gtvTxBody.operations,\n signers: gtvTxBody.signers,\n signatures,\n };\n}\nexport function checkGTXSignatures(txHash, gtx) {\n var _a;\n if (!Array.isArray(gtx.signatures) || gtx.signatures.length === 0) {\n return false;\n }\n for (const i in gtx.signers) {\n const signValid = checkDigestSignature(txHash, gtx.signers[i], (_a = gtx.signatures) === null || _a === void 0 ? void 0 : _a[i]);\n if (!signValid)\n return signValid;\n }\n return true;\n}\nexport function checkExistingGTXSignatures(txHash, gtx) {\n var _a;\n for (const i in gtx.signers) {\n if ((_a = gtx.signatures) === null || _a === void 0 ? void 0 : _a[i]) {\n const signValid = checkDigestSignature(txHash, gtx.signers[i], gtx.signatures[i]);\n if (!signValid)\n return signValid;\n }\n }\n return true;\n}\nexport function newSignatureProvider(keyPair) {\n let pub, priv;\n if (keyPair) {\n priv = ensureBuffer(keyPair.privKey);\n pub = keyPair.pubKey ? ensureBuffer(keyPair.pubKey) : createPublicKey(priv);\n }\n else {\n ({ privKey: priv, pubKey: pub } = makeKeyPair());\n }\n return {\n pubKey: pub,\n sign: (gtx, merkleHashVersion) => __awaiter(this, void 0, void 0, function* () {\n const signature = getDigestToSignFromRawGtxBody(gtx, merkleHashVersion);\n return signDigest(signature, priv);\n }),\n };\n}\nexport function rawGtvToGtx(gtv) {\n if (Array.isArray(gtv) && gtv.length !== 2) {\n throw new Error(\"Gtv must be an array of size 2\");\n }\n const gtvArray = gtv;\n if (!Array.isArray(gtvArray[0])) {\n throw new Error(\"First element must be an array\");\n }\n if (!Array.isArray(gtvArray[1])) {\n throw new Error(\"Second element must be an array\");\n }\n gtvArray[1].forEach(element => {\n if (!Buffer.isBuffer(element)) {\n throw new Error(\"Element must be a buffer\");\n }\n });\n const gtxBody = rawGtvToGtxBody(gtvArray[0]);\n return Object.assign(Object.assign({}, gtxBody), { signatures: gtvArray[1] });\n}\nfunction rawGtvToGtxBody(gtv) {\n if (Array.isArray(gtv) && gtv.length !== 3) {\n throw new Error(\"Gtv must be an array of size 3\");\n }\n const array = gtv;\n if (!Buffer.isBuffer(array[0])) {\n throw new Error(\"First element must be a byte array\");\n }\n if (!Array.isArray(array[1])) {\n throw new Error(\"Second element must be an array\");\n }\n if (!Array.isArray(array[2])) {\n throw new Error(\"Third element must be an array\");\n }\n array[2].forEach(element => {\n if (!Buffer.isBuffer(element)) {\n throw new Error(\"Element must be a buffer\");\n }\n });\n return {\n blockchainRid: array[0],\n operations: array[1].map(element => rawGtvToRellOp(element)),\n signers: array[2],\n };\n}\nfunction rawGtvToRellOp(gtv) {\n if (Array.isArray(gtv) && gtv.length !== 2) {\n throw new Error(\"Gtv must be an array of size 2\");\n }\n const array = gtv;\n if (typeof array[0] !== \"string\") {\n throw new Error(\"First element must be a string\");\n }\n if (!Array.isArray(array[1])) {\n throw new Error(\"Second element must be an array\");\n }\n return { opName: array[0], args: array[1] };\n}\n//# sourceMappingURL=gtx.js.map","var _a;\nvar MsgType;\n(function (MsgType) {\n MsgType[\"Debug\"] = \"DEBUG\";\n MsgType[\"Info\"] = \"INFO\";\n MsgType[\"Error\"] = \"ERROR\";\n MsgType[\"Warning\"] = \"WARNING\";\n})(MsgType || (MsgType = {}));\nvar LogColor;\n(function (LogColor) {\n LogColor[\"Red\"] = \"\\u001B[91m\";\n LogColor[\"Green\"] = \"\\u001B[92m\";\n LogColor[\"Blue\"] = \"\\u001B[36m\";\n LogColor[\"Yellow\"] = \"\\u001B[93m\";\n LogColor[\"StopColor\"] = \"\\u001B[0m\";\n})(LogColor || (LogColor = {}));\nexport var LogLevel;\n(function (LogLevel) {\n LogLevel[\"Debug\"] = \"DEBUG\";\n LogLevel[\"Info\"] = \"INFO\";\n LogLevel[\"Error\"] = \"ERROR\";\n LogLevel[\"Warning\"] = \"WARNING\";\n LogLevel[\"Disabled\"] = \"DISABLED\";\n})(LogLevel || (LogLevel = {}));\nconst logLevelMap = {\n [LogLevel.Warning]: 1,\n [LogLevel.Info]: 2,\n [LogLevel.Debug]: 3,\n [LogLevel.Error]: 0,\n [LogLevel.Disabled]: -1,\n};\nconst DEFAULT_LOG_LEVEL = logLevelMap[LogLevel.Warning];\nlet logLevel = typeof process === \"undefined\"\n ? DEFAULT_LOG_LEVEL\n : (_a = logLevelMap[process.env.LOG_LEVEL]) !== null && _a !== void 0 ? _a : DEFAULT_LOG_LEVEL;\nexport function setLogLevel(level) {\n logLevel = logLevelMap[level];\n}\nexport function getLogLevel() {\n return Object.keys(logLevelMap).find(key => logLevelMap[key] === logLevel);\n}\nexport function debug(message, moduleName) {\n if (logLevel >= 3) {\n emitLogMessage({\n message,\n moduleName,\n msgType: MsgType.Debug,\n color: LogColor.Blue,\n });\n }\n}\nexport function info(message, moduleName) {\n if (logLevel >= 2) {\n emitLogMessage({\n message,\n moduleName,\n msgType: MsgType.Info,\n color: LogColor.Green,\n });\n }\n}\nexport function error(message, moduleName) {\n if (logLevel != -1) {\n emitLogMessage({\n message,\n moduleName,\n msgType: MsgType.Error,\n color: LogColor.Red,\n });\n }\n}\nexport function warning(message, moduleName) {\n if (logLevel >= 1) {\n emitLogMessage({\n message,\n moduleName,\n msgType: MsgType.Warning,\n color: LogColor.Yellow,\n });\n }\n}\nfunction emitLogMessage({ msgType, message, color, moduleName, }) {\n const time = getTimestamp();\n const moduleNameMessage = moduleName ? `[${moduleName}]` : \"\";\n console.log(`[${time}] ${color}${msgType}:${LogColor.StopColor} ${moduleNameMessage} ${message}`);\n}\nfunction getTimestamp() {\n const pad = (n, s = 2) => `${new Array(s).fill(0)}${n}`.slice(-s);\n const date = new Date();\n return `${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}:${pad(date.getMilliseconds(), 3)}`;\n}\nexport function logger(moduleName) {\n return {\n debug: (message) => debug(message, moduleName),\n info,\n error,\n warning,\n setLogLevel,\n disable: () => setLogLevel(LogLevel.Disabled),\n };\n}\n//# sourceMappingURL=logger.js.map","import { CustomError } from \"../customError\";\nimport { matchRellErrorString } from \"../formatter\";\nexport class MissingPubKeyError extends CustomError {\n constructor() {\n super(`No public key was provided`, 400);\n }\n}\nexport class MissingBlockchainIdentifierError extends CustomError {\n constructor() {\n super(`No blockchain identifier was provided. Include either a blockchainRid (string) or a blockchainIid (number).`, 400);\n }\n}\nexport class MissingNodeUrlError extends CustomError {\n constructor() {\n super(`No node url or directory node url was provided. Include either a nodeUrl (string or string[]) or a directory node url (string or string[]).`, 400);\n }\n}\nexport class BlockchainUrlUndefinedException extends CustomError {\n constructor(brid) {\n const idType = typeof brid === \"string\" ? \"BRID\" : \"IID\";\n super(`Cannot find nodes hosting the blockchain with ${idType} ${brid}`, 400);\n }\n}\nexport class DirectoryNodeUrlPoolException extends CustomError {\n constructor() {\n super(`No directory node url was provided`, 400);\n }\n}\nexport class InvalidTransactionFormatException extends CustomError {\n constructor() {\n super(`The transaction is not in the right format`, 400);\n }\n}\nexport class GetTransactionRidException extends CustomError {\n constructor(error) {\n super(`\"Error occurred while getting transaction RID:\", ${error}`, 400);\n }\n}\nexport class TxRejectedError extends Error {\n constructor(rejectReason) {\n super(`Transaction was rejected, ${rejectReason}`);\n this.name = \"TxRejectedError\";\n this.fullReason = rejectReason;\n const result = matchRellErrorString(rejectReason);\n this.shortReason = result.shortReason;\n this.rellLine = result.rellLine;\n this.operation = result.operation;\n }\n}\nexport class UnexpectedStatusError extends CustomError {\n constructor(status, error) {\n let errorMessage = `Unexpected status code from server. Code: ${status}.`;\n if (status === null) {\n super(errorMessage, 500); // default status code\n }\n else {\n if (error) {\n errorMessage += ` Message: ${error}.`;\n }\n super(errorMessage, status);\n }\n }\n}\nexport class InvalidTxRidException extends CustomError {\n constructor(txRID) {\n super(`expected length 32 of txRID, but got ${txRID && txRID.length}`, 400);\n }\n}\nexport class SerializedTransactionFormatException extends CustomError {\n constructor() {\n super(`messageHash is not a Buffer`, 400);\n }\n}\nexport class GetBridFromChainException extends Error {\n constructor(chainId, reason) {\n super(`Error resolving BRID for chainId ${chainId}, reason: ${reason}`);\n }\n}\n//# sourceMappingURL=errors.js.map","export var FailoverStrategy;\n(function (FailoverStrategy) {\n FailoverStrategy[\"AbortOnError\"] = \"abortOnError\";\n FailoverStrategy[\"TryNextOnError\"] = \"tryNextOnError\";\n FailoverStrategy[\"SingleEndpoint\"] = \"singleEndpoint\";\n FailoverStrategy[\"QueryMajority\"] = \"queryMajority\";\n})(FailoverStrategy || (FailoverStrategy = {}));\nexport var ResponseStatus;\n(function (ResponseStatus) {\n ResponseStatus[\"Pending\"] = \"pending\";\n ResponseStatus[\"Confirmed\"] = \"confirmed\";\n ResponseStatus[\"Rejected\"] = \"rejected\";\n ResponseStatus[\"Unknown\"] = \"unknown\";\n ResponseStatus[\"Waiting\"] = \"waiting\";\n})(ResponseStatus || (ResponseStatus = {}));\nexport var TransactionEvent;\n(function (TransactionEvent) {\n TransactionEvent[\"ClusterAnchoringConfirmation\"] = \"clusterAnchoringConfirmed\";\n TransactionEvent[\"SystemAnchoringConfirmation\"] = \"systemAnchoringConfirmed\";\n TransactionEvent[\"DappConfirmed\"] = \"dappConfirmed\";\n TransactionEvent[\"DappReceived\"] = \"dappReceived\";\n TransactionEvent[\"Signed\"] = \"signed\";\n TransactionEvent[\"Rejected\"] = \"rejected\";\n})(TransactionEvent || (TransactionEvent = {}));\nexport var AnchoringStatus;\n(function (AnchoringStatus) {\n AnchoringStatus[\"NotAnchored\"] = \"notAnchored\";\n AnchoringStatus[\"ClusterAnchored\"] = \"clusterAnchored\";\n AnchoringStatus[\"SystemAnchored\"] = \"systemAnchored\";\n AnchoringStatus[\"FailedAnchoring\"] = \"failedAnchoring\";\n})(AnchoringStatus || (AnchoringStatus = {}));\nexport var ChainConfirmationLevel;\n(function (ChainConfirmationLevel) {\n ChainConfirmationLevel[\"None\"] = \"none\";\n ChainConfirmationLevel[\"Dapp\"] = \"dapp\";\n ChainConfirmationLevel[\"ClusterAnchoring\"] = \"clusterAnchoring\";\n ChainConfirmationLevel[\"SystemAnchoring\"] = \"systemAnchoring\";\n ChainConfirmationLevel[\"EvmNetwork\"] = \"evmNetwork\";\n})(ChainConfirmationLevel || (ChainConfirmationLevel = {}));\nexport var Method;\n(function (Method) {\n Method[\"GET\"] = \"get\";\n Method[\"POST\"] = \"post\";\n})(Method || (Method = {}));\n//# sourceMappingURL=enums.js.map","import * as logger from \"../logger\";\nexport class NetworkNode {\n constructor(url) {\n this.availabilityDate = 0;\n this.url = url;\n }\n isAvailable() {\n return Date.now() >= this.availabilityDate;\n }\n makeUnavailable(duration) {\n this.availabilityDate = Date.now() + duration;\n }\n makeAvailable() {\n this.availabilityDate = 0;\n }\n}\nconst shuffleArray = (array) => {\n const shuffledArray = [...array];\n for (let i = shuffledArray.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [shuffledArray[i], shuffledArray[j]] = [shuffledArray[j], shuffledArray[i]];\n }\n return shuffledArray;\n};\nexport const createNodeManager = ({ nodeUrls, useStickyNode = false, unavailableDuration = 5000, }) => {\n const nodes = nodeUrls.map(url => new NetworkNode(url));\n return {\n nodes,\n stickedNode: null,\n useStickyNode: useStickyNode,\n lastUsedNode: null,\n getAvailableNodes(customRecoveryThreshold) {\n const availableNodes = this.nodes.filter((node) => node.isAvailable());\n if (this.nodes.length >= 3) {\n // Default to conservative threshold (2x formula) if no custom threshold provided\n const recoveryThreshold = customRecoveryThreshold !== null && customRecoveryThreshold !== void 0 ? customRecoveryThreshold : this.nodes.length - Math.floor((2 * (this.nodes.length - 1)) / 3);\n if (availableNodes.length < recoveryThreshold) {\n logger.debug(`Auto-recovery: ${availableNodes.length} < ${recoveryThreshold} nodes (${this.nodes.length} total)`);\n const previousStickyUrl = this.stickedNode;\n this.makeAllNodesAvailable();\n if (this.useStickyNode && previousStickyUrl) {\n if (previousStickyUrl) {\n this.setStickyNode(previousStickyUrl);\n logger.info(`Sticky node preserved during recovery: ${previousStickyUrl}`);\n }\n }\n const updatedAvailableNodes = this.nodes.filter((node) => node.isAvailable());\n return shuffleArray(updatedAvailableNodes);\n }\n }\n const shuffledAvailableNodes = shuffleArray(availableNodes);\n // set sticky node as the first node, and then shuffle the rest\n if (useStickyNode && this.stickedNode && this.stickedNode.isAvailable()) {\n const nodesWithoutSticky = shuffledAvailableNodes.filter(node => node !== this.stickedNode);\n return [this.stickedNode, ...nodesWithoutSticky];\n }\n return shuffledAvailableNodes;\n },\n setStickyNode(node) {\n this.stickedNode = node;\n },\n setUseStickyNode(useSticky) {\n this.useStickyNode = useSticky;\n },\n getNode() {\n const nodes = this.getAvailableNodes();\n if (nodes.length === 0) {\n return null;\n }\n const index = Math.floor(Math.random() * nodes.length);\n const node = nodes[index];\n this.lastUsedNode = node;\n if (!this.useStickyNode) {\n return node;\n }\n if (!this.stickedNode) {\n this.setStickyNode(node);\n return node;\n }\n this.lastUsedNode = this.stickedNode;\n return this.stickedNode;\n },\n makeAllNodesAvailable() {\n for (const node of this.nodes) {\n node.makeAvailable();\n }\n },\n makeNodeUnavailable(nodeUrl, duration = unavailableDuration) {\n if (this.stickedNode && this.stickedNode.url === nodeUrl) {\n this.stickedNode = null;\n }\n const invalidNode = this.nodes.find((node) => node.url === nodeUrl);\n if (!invalidNode)\n return;\n invalidNode.makeUnavailable(duration);\n },\n };\n};\n//# sourceMappingURL=nodeManager.js.map","import { Buffer } from \"buffer\";\nimport { z } from \"zod\";\nexport const BufferSchema = z.union([z.instanceof(Uint8Array), z.instanceof(Buffer)]);\n//# sourceMappingURL=bufferSchema.js.map","import { InvalidTxRidException } from \"../errors\";\nimport { BufferSchema } from \"./bufferSchema\";\nexport const TxRidSchema = BufferSchema.refine(x => x.length === 32, \"Rid must be 32 bytes long\");\nexport const isTxRidValid = (rid, options) => {\n const TxRidValidationContext = TxRidSchema.safeParse(rid);\n const { throwOnError = false } = options || {};\n const hasError = \"error\" in TxRidValidationContext;\n if (!hasError) {\n return { success: true };\n }\n const validationError = new InvalidTxRidException(rid);\n if (throwOnError) {\n throw validationError;\n }\n return {\n success: false,\n error: TxRidValidationContext.error,\n message: validationError.message,\n };\n};\n//# sourceMappingURL=txRid.js.map","import { Buffer } from \"buffer\";\nimport { z } from \"zod\";\nimport { TxRidSchema } from \"./txRid\";\nexport const AnchoringTransactionSchema = z.object({\n txRid: z.instanceof(Buffer).superRefine((rid, refCtx) => {\n const txRidValidation = TxRidSchema.safeParse(rid);\n if (!txRidValidation.success)\n txRidValidation.error.issues.forEach(issue => refCtx.addIssue(issue));\n }),\n txData: z.instanceof(Buffer).refine(data => data.length > 0, {\n message: \"txData must be a non-empty Buffer\",\n }),\n txOpIndex: z.number().int().nonnegative({ message: \"txOpIndex must be a non-negative integer\" }),\n});\n//# sourceMappingURL=anchoringTransaction.js.map","import { ensureString, toString } from \"../formatter\";\nexport class MissingTransactionProof extends Error {\n constructor(proofHash, fetchedTxHash) {\n super(`Unable to verify source transaction proof,transaction hash in proof ${toString(proofHash)} does not match hash from fetched transaction ${toString(fetchedTxHash)}`);\n }\n}\nexport class DifferentNumberOfSignersException extends Error {\n constructor(length, comparableLength) {\n super(`Transaction signatures amount ${length} do not match expected amount of signers ${comparableLength}`);\n }\n}\nexport class SignatureException extends Error {\n constructor(signer) {\n super(`Expected signer ${toString(signer)} has not signed source transaction`);\n }\n}\nexport class ProofRidException extends Error {\n constructor() {\n super(\"Unable to verify source transaction proof, got a different transaction from query than we asked for\");\n }\n}\nexport class SystemChainException extends Error {\n constructor(errorMessage) {\n super(`Query to system chain failed with error: ${errorMessage}`);\n }\n}\nexport class ConfirmationProofException extends Error {\n constructor(transactionRid) {\n super(`Unable to fetch confirmation proof for transaction RID: ${ensureString(transactionRid)}.`);\n }\n}\nexport class BlockAnchoringException extends Error {\n constructor() {\n super(`Block is not present in cluster anchoring chain`);\n }\n}\n//# sourceMappingURL=error.js.map","import { Buffer } from \"buffer\";\nimport { z } from \"zod\";\nconst RawGtvSchema = z.union([\n z.boolean(),\n z.string(),\n z.number(),\n z.bigint(),\n z.instanceof(Buffer),\n z.array(z.unknown()),\n z.record(z.unknown()),\n]);\nconst DictPairSchema = z.record(RawGtvSchema);\nconst TransactionInfoInBlockResponseSchema = z.object({\n rid: z.string(),\n hash: z.string(),\n data: z.string().optional(),\n});\nconst BlockInfoResponseSchema = z.object({\n rid: z.string(),\n prevBlockRID: z.string(),\n header: z.string(),\n height: z.number(),\n transactions: z.array(TransactionInfoInBlockResponseSchema),\n witness: z.string(),\n witnesses: z.array(z.string()),\n timestamp: z.number(),\n});\nconst TransactionObjectSchema = z.object({\n tx: z.string(),\n});\nconst TransactionsCountSchema = z.object({\n transactionsCount: z.number(),\n});\nconst TransactionConfirmationProofSchema = z.object({\n proof: z.string(),\n});\nconst ConfirmationProofSchema = z.object({\n hash: z.instanceof(Buffer),\n blockHeader: z.instanceof(Buffer),\n witness: z.instanceof(Buffer),\n merkleProofTree: RawGtvSchema,\n txIndex: z.number(),\n});\nconst TransactionInfoResponseSchema = z.object({\n blockRID: z.string(),\n blockHeight: z.number(),\n blockHeader: z.string(),\n witness: z.string(),\n timestamp: z.number(),\n txRID: z.string(),\n txHash: z.string(),\n txData: z.string(),\n});\nconst TransactionInfoSchema = z.object({\n blockRid: z.instanceof(Buffer),\n blockHeight: z.number(),\n blockHeader: z.instanceof(Buffer),\n witness: z.instanceof(Buffer),\n timestamp: z.number(),\n txRid: z.instanceof(Buffer),\n txHash: z.instanceof(Buffer),\n txData: z.instanceof(Buffer),\n});\nconst RejectedTransactionSchema = z.object({\n txRid: z.instanceof(Buffer),\n rejectReason: z.string(),\n rejectTimestamp: z.number(),\n});\nconst RejectedTransactionResponseSchema = z.object({\n txRID: z.string(),\n rejectReason: z.string(),\n rejectTimestamp: z.number(),\n});\nexport function isString(value) {\n const result = z.string().safeParse(value);\n return result.success ? value : null;\n}\nexport function isDictPair(value) {\n const result = DictPairSchema.safeParse(value);\n return result.success ? value : null;\n}\nexport function isRawGtv(value) {\n const result = RawGtvSchema.safeParse(value);\n return result.success ? value : null;\n}\nexport function isTransactionInfoInBlockResponse(value) {\n const result = TransactionInfoInBlockResponseSchema.safeParse(value);\n return result.success ? value : null;\n}\nexport function isTransactionInfoInBlockResponseArray(value) {\n const result = z.array(TransactionInfoInBlockResponseSchema).safeParse(value);\n return result.success ? value : null;\n}\nexport function isBlockInfoResponse(value) {\n const result = BlockInfoResponseSchema.safeParse(value);\n return result.success ? value : null;\n}\nexport function isBlockInfoResponseArray(value) {\n const result = z.array(BlockInfoResponseSchema).safeParse(value);\n return result.success ? value : null;\n}\nexport function isTransaction(value) {\n const result = TransactionObjectSchema.safeParse(value);\n return result.success ? value : null;\n}\nexport function isTransactionsCount(value) {\n const result = TransactionsCountSchema.safeParse(value);\n return result.success ? value : null;\n}\nexport function isTransactionConfirmationProof(value) {\n const result = TransactionConfirmationProofSchema.safeParse(value);\n return result.success ? value : null;\n}\nexport function isConfirmationProof(value) {\n const result = ConfirmationProofSchema.safeParse(value);\n return result.success ? value : null;\n}\nexport function isTransactionInfoResponse(value) {\n const result = TransactionInfoResponseSchema.safeParse(value);\n return result.success ? value : null;\n}\nexport function isTransactionInfoResponseArray(value) {\n const result = z.array(TransactionInfoResponseSchema).safeParse(value);\n return result.success ? value : null;\n}\nexport function isTransactionInfo(value) {\n const result = TransactionInfoSchema.safeParse(value);\n return result.success ? value : null;\n}\nexport function isTransactionInfoArray(value) {\n const result = z.array(TransactionInfoSchema).safeParse(value);\n return result.success ? value : null;\n}\nexport function isRejectedTransaction(value) {\n const result = RejectedTransactionSchema.safeParse(value);\n return result.success ? value : null;\n}\nexport function isRejectedTransactionArray(value) {\n const result = z.array(RejectedTransactionSchema).safeParse(value);\n return result.success ? value : null;\n}\nexport function isRejectedTransactionResponse(value) {\n const result = RejectedTransactionResponseSchema.safeParse(value);\n return result.success ? value : null;\n}\nexport function isRejectedTransactionResponseArray(value) {\n const result = z.array(RejectedTransactionResponseSchema).safeParse(value);\n return result.success ? value : null;\n}\n//# sourceMappingURL=requests.js.map","import { serialize } from \"../gtx/gtx\";\n/**\n *\n * Encodes the gtx using ASN.1.\n * @returns the gtx encoded\n */\nexport function encodeTransaction(gtx) {\n return serialize(gtx);\n}\n//# sourceMappingURL=encodeTransaction.js.map","import { z } from \"zod\";\nimport { MERKLE_HASH_VERSIONS } from \"../../utils/constants\";\nconst MerkleHashSchema = z.object({\n merkle_hash_version: z.number().int().positive(),\n});\nexport const validateMerkleHash = (data) => {\n const result = MerkleHashSchema.safeParse(data);\n if (!result.success) {\n return { merkle_hash_version: MERKLE_HASH_VERSIONS.ONE };\n }\n return result.data;\n};\n//# sourceMappingURL=merkleHash.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { Buffer } from \"buffer\";\nimport * as logger from \"../logger\";\nimport { decodeValue } from \"../gtx/serialization\";\nimport { Method } from \"./enums\";\nfunction createTimeoutController(timeout) {\n if (!timeout)\n return { controller: undefined, timeoutId: undefined };\n const controller = new AbortController();\n const timeoutError = new Error(`Request timeout after ${timeout}ms`);\n timeoutError.name = 'TimeoutError';\n const timeoutId = setTimeout(() => controller.abort(timeoutError), timeout);\n return { controller, timeoutId };\n}\nexport function handleRequest(method, path, endpoint, timeout, postObject) {\n return __awaiter(this, void 0, void 0, function* () {\n if (method == Method.GET) {\n return yield get(path, endpoint, timeout);\n }\n else {\n return yield post(path, endpoint, timeout, postObject);\n }\n });\n}\n/**\n * Sends request to get data from a given API endpoint.\n * @param path API endpoint of Rell backend\n * @param endpoint\n * @param timeout\n */\nfunction get(path, endpoint, timeout) {\n return __awaiter(this, void 0, void 0, function* () {\n logger.debug(`GET URL ${new URL(path, endpoint).href}`);\n try {\n const { controller, timeoutId } = createTimeoutController(timeout);\n const response = yield fetch(new URL(path, endpoint).href, {\n signal: controller === null || controller === void 0 ? void 0 : controller.signal,\n });\n if (timeoutId)\n clearTimeout(timeoutId);\n const contentType = response.headers.get(\"Content-Type\");\n const transactionTimestamp = response.headers.get(\"X-Transaction-Timestamp\");\n let rspBody = null;\n const error = null;\n if (contentType === null || contentType === void 0 ? void 0 : contentType.includes(\"application/json\")) {\n rspBody = yield response.json();\n }\n else if (contentType === null || contentType === void 0 ? void 0 : contentType.includes(\"text/plain\")) {\n rspBody = yield response.text();\n }\n else if (contentType === null || contentType === void 0 ? void 0 : contentType.includes(\"application/octet-stream\")) {\n rspBody = yield constructBufferResponseBody(response);\n }\n return createResponseObject(error, response.status, rspBody, transactionTimestamp);\n }\n catch (error) {\n logger.error(error.message);\n return createResponseObject(error, null, null);\n }\n });\n}\nfunction constructBufferResponseBody(response) {\n return __awaiter(this, void 0, void 0, function* () {\n const contentType = response.headers.get(\"content-type\");\n if (contentType === \"application/octet-stream\") {\n const responseBuffer = yield response.arrayBuffer();\n const buffer = Buffer.from(responseBuffer);\n return decodeValue(buffer);\n }\n if (contentType === \"application/json\") {\n return yield response.json();\n }\n const responseText = yield response.text();\n return responseText ? responseText : response.statusText;\n });\n}\n/**\n * Sends request to post data to a given API endpoint.\n * @param path API endpoint of Rell backend\n * @param endpoint\n * @param timeout\n * @param requestBody request body\n */\nfunction post(path, endpoint, timeout, requestBody) {\n return __awaiter(this, void 0, void 0, function* () {\n logger.debug(`POST URL ${new URL(path, endpoint).href}`);\n logger.debug(`POST body ${JSON.stringify(requestBody)}`);\n if (Buffer.isBuffer(requestBody)) {\n try {\n const { controller, timeoutId } = createTimeoutController(timeout);\n const requestOptions = {\n method: \"post\",\n body: new Uint8Array(requestBody),\n headers: {\n Accept: \"application/octet-stream\",\n \"Content-Type\": \"application/octet-stream\",\n },\n signal: controller === null || controller === void 0 ? void 0 : controller.signal,\n };\n const response = yield fetch(new URL(path, endpoint).href, requestOptions);\n if (timeoutId)\n clearTimeout(timeoutId);\n const transactionTimestamp = response.headers.get(\"X-Transaction-Timestamp\");\n return createResponseObject(null, response.status, yield constructBufferResponseBody(response), transactionTimestamp);\n }\n catch (error) {\n return createResponseObject(error, null, null);\n }\n }\n else {\n try {\n const { controller, timeoutId } = createTimeoutController(timeout);\n const response = yield fetch(new URL(path, endpoint).href, {\n method: \"post\",\n body: JSON.stringify(requestBody),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n signal: controller === null || controller === void 0 ? void 0 : controller.signal,\n });\n if (timeoutId)\n clearTimeout(timeoutId);\n const transactionTimestamp = response.headers.get(\"X-Transaction-Timestamp\");\n return createResponseObject(null, response.status, yield constructBufferResponseBody(response), transactionTimestamp);\n }\n catch (error) {\n return createResponseObject(error, null, null);\n }\n }\n });\n}\nfunction createResponseObject(error, statusCode, rspBody, transactionTimestamp) {\n let finalStatusCode = statusCode;\n // Handle browser network errors as a specific status code for smart timeout logic\n if (error && !statusCode && !rspBody) {\n finalStatusCode = 502; // Treat as Bad Gateway for timeout purposes\n }\n const responseObject = {\n error,\n statusCode: finalStatusCode,\n rspBody,\n };\n if (transactionTimestamp) {\n responseObject.transactionTimestamp = transactionTimestamp;\n }\n return responseObject;\n}\n//# sourceMappingURL=httpUtil.js.map","export function isQueryNotFoundError(error) {\n return (typeof error === \"object\" &&\n error !== null &&\n \"code\" in error &&\n error.code === \"QUERY_NOT_FOUND\");\n}\nexport function isHttpStatusError(error) {\n return (typeof error === \"object\" &&\n error !== null &&\n \"status\" in error &&\n typeof error.status === \"number\");\n}\nexport function isNetworkError(error) {\n return (typeof error === \"object\" && error !== null && \"code\" in error && typeof error.code === \"string\");\n}\nexport function isRetriableClientError(response) {\n if (typeof response === \"object\" && response !== null) {\n // Check error field first\n if (\"error\" in response && isQueryNotFoundError(response.error)) {\n return false;\n }\n // Check rspBody if no error\n if (\"rspBody\" in response && isQueryNotFoundError(response.rspBody)) {\n return false;\n }\n }\n return true;\n}\nexport const isClientErrorStatusCode = (status) => {\n return status >= 400 && status < 500;\n};\nexport const isServerErrorStatusCode = (status) => {\n return status >= 500 && status < 600;\n};\nexport const isSuccessfulStatusCode = (statusCode) => statusCode >= 200 && statusCode < 300;\n//# sourceMappingURL=http-utils.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { sleep } from \"./utils\";\nimport { handleRequest } from \"./httpUtil\";\nimport * as logger from \"../logger\";\nimport { isClientErrorStatusCode, isHttpStatusError, isNetworkError, isRetriableClientError, isServerErrorStatusCode, isSuccessfulStatusCode, } from \"../utils/http-utils\";\nfunction getUnreachableDuration(statusCode, error) {\n if (isNetworkError(error)) {\n const { code } = error;\n if (code === \"ENOTFOUND\")\n return 5 * 60 * 1000;\n if (code === \"ECONNREFUSED\")\n return 5 * 60 * 1000;\n }\n const status = isHttpStatusError(error) ? error.status : statusCode;\n switch (status) {\n case 500:\n return 10 * 1000; // Server restart: 10s\n case 502:\n return 30 * 1000; // Gateway: 30s\n case 503:\n return 2 * 1000; // Load: 2s\n case 504:\n return 60 * 1000; // Timeout: 60s\n default:\n return 5 * 1000;\n }\n}\nexport function abortOnError(_a) {\n return __awaiter(this, arguments, void 0, function* ({ method, path, config, postObject, timeoutOverride, }) {\n return yield retryRequest({\n method,\n path,\n config,\n postObject,\n timeoutOverride,\n useNextNodeOnError: false,\n recoveryThreshold: config.recoveryThreshold, // Use user config or let nodeManager use default\n });\n });\n}\nexport function tryNextOnError(_a) {\n return __awaiter(this, arguments, void 0, function* ({ method, path, config, postObject, timeoutOverride, }) {\n return yield retryRequest({\n method,\n path,\n config,\n postObject,\n timeoutOverride,\n useNextNodeOnError: true,\n recoveryThreshold: config.recoveryThreshold,\n });\n });\n}\nexport const errorMessages = {\n NO_CONSENSUS: \"Nodes were not able to reach a consensus\",\n};\nfunction calculateBftMajorityThreshold(endpointPoolLength) {\n return endpointPoolLength - (endpointPoolLength - 1) / 3;\n}\nexport function queryMajority(_a) {\n return __awaiter(this, arguments, void 0, function* ({ method, path, config, postObject, timeoutOverride, }) {\n var _b;\n // Set up constants\n const bftMajorityThreshold = calculateBftMajorityThreshold(config.endpointPool.length);\n const failureThreshold = config.endpointPool.length - bftMajorityThreshold + 1;\n const { nodeManager } = config;\n const timeout = 15000;\n const availableNodes = nodeManager.getAvailableNodes((_b = config.recoveryThreshold) !== null && _b !== void 0 ? _b : bftMajorityThreshold);\n const outcomes = [];\n const promises = availableNodes.map((node) => __awaiter(this, void 0, void 0, function* () {\n try {\n const requestTimeout = timeoutOverride !== null && timeoutOverride !== void 0 ? timeoutOverride : config.responseTimeout;\n const response = yield handleRequest(method, path, node.url, requestTimeout, postObject);\n const { statusCode } = response;\n if (statusCode && isSuccessfulStatusCode(statusCode)) {\n outcomes.push({ type: \"SUCCESS\", result: response });\n }\n else {\n if (statusCode && isServerErrorStatusCode(statusCode)) {\n const duration = getUnreachableDuration(statusCode, response.error);\n nodeManager.makeNodeUnavailable(node.url, duration);\n }\n outcomes.push({ type: \"FAILURE\", result: response });\n }\n return response;\n }\n catch (error) {\n outcomes.push({ type: \"ERROR\", result: error });\n return error;\n }\n }));\n let remainingPromises = promises;\n // Wait for the necessary majority of outcomes to come back or for the timeout to be reached, whichever comes first.\n for (let i = 0; i < bftMajorityThreshold; i++) {\n remainingPromises = yield racePromisesWithTimeout(remainingPromises, timeout);\n }\n // Evaluate the outcomes\n const successfulOutcomes = outcomes.filter(outcome => outcome.type === \"SUCCESS\");\n const failureOutcomes = outcomes.filter(outcome => outcome.type === \"FAILURE\");\n const errorOutcomes = outcomes.filter(outcome => outcome.type === \"ERROR\");\n // group all of the same responses together into groups and count each groups size\n const groupedSuccessfulResponses = groupResponses(successfulOutcomes);\n // validate the responses\n // eslint-disable-next-line no-constant-condition\n while (true) {\n // Successful majority response was found\n if (groupedSuccessfulResponses.maxNumberOfEqualResponses() >= bftMajorityThreshold) {\n if (groupedSuccessfulResponses.numberOfDistinctResponses() > 1) {\n logger.warning(`Got disagreeing responses, but could still reach BFT majority`);\n }\n return groupedSuccessfulResponses.majorityResponse();\n }\n // Too many failures or errors to be able to reach a consensus\n // If the number of failures and errors is greater than the failure threshold, return first failure, if any, otherwise throw the first error.\n if ([...failureOutcomes, ...errorOutcomes].length >= failureThreshold) {\n if (failureOutcomes.length > 0) {\n return failureOutcomes[0].result;\n }\n else {\n throw errorOutcomes[0].result;\n }\n }\n // If all nodes have responded without a majority, throw an error.\n if (outcomes.length >= config.endpointPool.length) {\n throw new Error(errorMessages.NO_CONSENSUS);\n }\n // Wait for more one more response to come back. ( we need to set a timeout here)\n remainingPromises = yield racePromisesWithTimeout(remainingPromises, timeout);\n }\n });\n}\nexport function singleEndpoint(_a) {\n return __awaiter(this, arguments, void 0, function* ({ method, path, config, postObject, timeoutOverride, }) {\n let statusCode = null;\n let rspBody = null;\n let error = null;\n let transactionTimestamp = undefined;\n const endpoint = config.nodeManager.getNode();\n if (!endpoint) {\n throw new Error(\"No nodes available after recovery attempt. Check node configuration.\");\n }\n for (let attempt = 0; attempt < config.attemptsPerEndpoint; attempt++) {\n const requestTimeout = timeoutOverride !== null && timeoutOverride !== void 0 ? timeoutOverride : config.responseTimeout;\n const response = yield handleRequest(method, path, endpoint.url, requestTimeout, postObject);\n if (response) {\n ({ error, statusCode, rspBody, transactionTimestamp } = response);\n }\n const isError = statusCode\n ? isClientErrorStatusCode(statusCode) || isServerErrorStatusCode(statusCode)\n : false;\n if (!isError && !error) {\n return { error, statusCode, rspBody, transactionTimestamp };\n }\n logger.info(`${method} request failed on ${endpoint.url}. Attempt: ${attempt + 1} / ${config.attemptsPerEndpoint}`);\n yield sleep(config.attemptInterval);\n }\n return { error, statusCode, rspBody, transactionTimestamp };\n });\n}\nexport function retryRequest(_a) {\n return __awaiter(this, arguments, void 0, function* ({ method, path, config, postObject, useNextNodeOnError, recoveryThreshold, timeoutOverride, }) {\n var _b, _c, _d;\n let statusCode = null;\n let rspBody = null;\n let error = null;\n let transactionTimestamp = undefined;\n const { nodeManager } = config;\n const availableNodes = nodeManager.getAvailableNodes(recoveryThreshold);\n for (const node of availableNodes) {\n for (let attempt = 0; attempt < config.attemptsPerEndpoint; attempt++) {\n const requestTimeout = timeoutOverride !== null && timeoutOverride !== void 0 ? timeoutOverride : config.responseTimeout;\n const response = yield handleRequest(method, path, node.url, requestTimeout, postObject);\n error = (_b = response === null || response === void 0 ? void 0 : response.error) !== null && _b !== void 0 ? _b : null;\n statusCode = (_c = response === null || response === void 0 ? void 0 : response.statusCode) !== null && _c !== void 0 ? _c : null;\n rspBody = (_d = response === null || response === void 0 ? void 0 : response.rspBody) !== null && _d !== void 0 ? _d : null;\n transactionTimestamp = response === null || response === void 0 ? void 0 : response.transactionTimestamp;\n const isServerError = !!statusCode && isServerErrorStatusCode(statusCode);\n const isClientError = !!statusCode && isClientErrorStatusCode(statusCode);\n if (!isServerError && !isClientError && statusCode) {\n // Find a way to have this handled more elegantly in the node manager.\n nodeManager.lastUsedNode = node;\n if (nodeManager.stickedNode !== node) {\n node.makeAvailable();\n nodeManager.setStickyNode(node);\n }\n return { error, statusCode, rspBody, transactionTimestamp };\n }\n if (isServerError) {\n const duration = getUnreachableDuration(statusCode !== null && statusCode !== void 0 ? statusCode : undefined, response.error);\n nodeManager.makeNodeUnavailable(node.url, duration);\n logger.info(`request failed with server error on ${node.url} trying next node`);\n break;\n }\n if (isClientError) {\n if (!useNextNodeOnError || !isRetriableClientError(response)) {\n return { error, statusCode, rspBody, transactionTimestamp };\n }\n if (!nodeManager.useStickyNode) {\n logger.info(`request failed client error on ${node.url} trying next node`);\n break;\n }\n // Otherwise continue with next attempt for this node\n }\n logger.info(`${method} request failed on ${node.url}. Attempt: ${attempt + 1} / ${config.attemptsPerEndpoint}`);\n // if statement is workaround for test utils\n if (config.attemptInterval > 0) {\n yield sleep(config.attemptInterval);\n }\n }\n }\n return { error, statusCode, rspBody, transactionTimestamp };\n });\n}\nexport function racePromisesWithTimeout(promises, timeout) {\n return __awaiter(this, void 0, void 0, function* () {\n let remainingPromises = [];\n try {\n const resolvedPromise = yield Promise.race([createTimeoutPromise(timeout), ...promises]);\n const promisesWithState = yield checkStateOfPromises(promises);\n const indexOfpromiseToRemove = promisesWithState.findIndex(p => JSON.stringify(p.value) === JSON.stringify(resolvedPromise));\n // Remove the promise that resolved from the list of promises\n promisesWithState.splice(indexOfpromiseToRemove, 1);\n // Remove the state before returning the promises.\n remainingPromises = promisesWithState.map(p => p.value);\n return remainingPromises;\n }\n catch (error) {\n if (error instanceof Error && error.message === \"Timeout exceeded\") {\n throw error;\n }\n return remainingPromises;\n }\n });\n}\nexport function createTimeoutPromise(timeoutMs) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((_, reject) => {\n setTimeout(() => {\n reject(new Error(\"Timeout exceeded\"));\n }, timeoutMs);\n });\n });\n}\nexport const checkStateOfPromises = (promises) => __awaiter(void 0, void 0, void 0, function* () {\n const promiseList = [];\n const pendingState = { status: \"pending\" };\n for (const p of promises) {\n promiseList.push(yield Promise.race([p, pendingState]).then(value => value === pendingState ? Object.assign(Object.assign({}, pendingState), { value: p }) : { status: \"fulfilled\", value }, reason => ({ status: \"rejected\", value: reason })));\n }\n return promiseList;\n});\nconst stableStringify = (obj) => {\n if (obj && typeof obj === \"object\" && !Array.isArray(obj)) {\n return JSON.stringify(obj, Object.keys(obj).sort());\n }\n return JSON.stringify(obj);\n};\nexport const groupResponses = (responses) => {\n const responseMap = responses.reduce((acc, response) => {\n const key = stableStringify(response.result);\n acc[key] = acc[key]\n ? { response: acc[key].response, count: acc[key].count + 1 }\n : { response, count: 1 };\n return acc;\n }, {});\n const distinctResponses = Object.values(responseMap).sort((a, b) => b.count - a.count);\n // Returns the count of the most common response\n const maxNumberOfEqualResponses = () => {\n return distinctResponses.length > 0 ? distinctResponses[0].count : 0;\n };\n // Returns the number of distinct responses\n const numberOfDistinctResponses = () => {\n return distinctResponses.length;\n };\n // Returns the most common response\n const majorityResponse = () => {\n return distinctResponses[0].response.result;\n };\n return {\n maxNumberOfEqualResponses,\n numberOfDistinctResponses,\n majorityResponse,\n };\n};\n//# sourceMappingURL=failoverStrategies.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { FailoverStrategy } from \"./enums\";\nimport { abortOnError, tryNextOnError, singleEndpoint, queryMajority } from \"./failoverStrategies\";\nexport function requestWithFailoverStrategy(method_1, path_1, config_1, postObject_1) {\n return __awaiter(this, arguments, void 0, function* (method, path, config, postObject, forceSingleEndpoint = false, timeoutOverride) {\n switch (config.failoverStrategy) {\n case FailoverStrategy.AbortOnError:\n return yield abortOnError({ method, path, config, postObject, timeoutOverride });\n case FailoverStrategy.TryNextOnError:\n return yield tryNextOnError({ method, path, config, postObject, timeoutOverride });\n case FailoverStrategy.SingleEndpoint:\n return yield singleEndpoint({ method, path, config, postObject, timeoutOverride });\n case FailoverStrategy.QueryMajority:\n if (forceSingleEndpoint) {\n return yield singleEndpoint({ method, path, config, postObject, timeoutOverride });\n }\n return yield queryMajority({ method, path, config, postObject, timeoutOverride });\n default:\n throw new Error(`Unsupported failover strategy: ${config.failoverStrategy}`);\n }\n });\n}\n//# sourceMappingURL=requestWithFailoverStrategy.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { Buffer } from \"buffer\";\nimport * as logger from \"../logger\";\nimport { SerializedTransactionFormatException, InvalidTxRidException, TxRejectedError, UnexpectedStatusError, GetBridFromChainException, } from \"./errors\";\nimport * as gtxTool from \"../gtx/gtx\";\nimport { BlockchainUrlUndefinedException, DirectoryNodeUrlPoolException, InvalidTransactionFormatException, MissingBlockchainIdentifierError, } from \"./errors\";\nimport { ensureBuffer, toBuffer } from \"../formatter\";\nimport { createClient } from \"./blockchainClient\";\nimport { AnchoringStatus, ChainConfirmationLevel, FailoverStrategy, Method, ResponseStatus, TransactionEvent, } from \"./enums\";\nimport { createNodeManager } from \"./nodeManager\";\nimport { AnchoringTransactionSchema } from \"./validation/anchoringTransaction\";\nimport { SystemChainException } from \"../ICCF/error\";\nimport { getAnchoringClient } from \"../ICCF/IccfProofTxMaterialBuilder\";\nimport { awaitGetAnchoringTransactionForBlockRid, calculateBlockRID } from \"../ICCF/utils\";\nimport { isString } from \"./validation/requests\";\nimport { encodeTransaction } from \"../utils/encodeTransaction\";\nimport { validateMerkleHash } from \"./validation/merkleHash\";\nimport { requestWithFailoverStrategy } from \"./requestWithFailoverStrategy\";\nimport { MERKLE_HASH_VERSIONS } from \"../utils/constants\";\nimport { isSuccessfulStatusCode } from \"../utils/http-utils\";\nexport function getClientConfigFromSettings(settings) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n const nodeUrlPoolToUse = yield getNodeUrlsFromSettings(settings);\n if (nodeUrlPoolToUse === null || nodeUrlPoolToUse.length === 0) {\n const id = (_b = (_a = settings.blockchainRid) !== null && _a !== void 0 ? _a : settings.blockchainIid) !== null && _b !== void 0 ? _b : \"Unknown\";\n throw new BlockchainUrlUndefinedException(id);\n }\n const endpointPool = createEndpointObjects(nodeUrlPoolToUse);\n const nodeManager = createNodeManager({\n nodeUrls: nodeUrlPoolToUse,\n useStickyNode: (_c = settings.useStickyNode) !== null && _c !== void 0 ? _c : false,\n unavailableDuration: (_d = settings.failOverConfig) === null || _d === void 0 ? void 0 : _d.unreachableDuration,\n });\n const blockchainRidToUse = yield (() => __awaiter(this, void 0, void 0, function* () {\n var _a;\n if (settings.blockchainRid) {\n return settings.blockchainRid;\n }\n if (settings.blockchainIid !== undefined) {\n return yield getBlockchainRidFromIid({\n nodeManager,\n endpointPool,\n chainId: settings.blockchainIid,\n merkleHashVersion: (_a = settings.merkleHashVersion) !== null && _a !== void 0 ? _a : MERKLE_HASH_VERSIONS.UNSET,\n connectTimeout: settings.connectTimeout,\n responseTimeout: settings.responseTimeout,\n });\n }\n throw new MissingBlockchainIdentifierError();\n }))();\n const directoryChainRid = yield (() => __awaiter(this, void 0, void 0, function* () {\n var _a;\n if (settings.directoryChainRid) {\n return settings.directoryChainRid;\n }\n const directoryChainIid = 0;\n return yield getBlockchainRidFromIid({\n nodeManager,\n endpointPool,\n chainId: directoryChainIid,\n merkleHashVersion: (_a = settings.merkleHashVersion) !== null && _a !== void 0 ? _a : MERKLE_HASH_VERSIONS.UNSET,\n connectTimeout: settings.connectTimeout,\n responseTimeout: settings.responseTimeout,\n });\n }))();\n return {\n endpointPool,\n nodeManager: nodeManager,\n blockchainRid: blockchainRidToUse,\n merkleHashVersion: (_e = settings.merkleHashVersion) !== null && _e !== void 0 ? _e : MERKLE_HASH_VERSIONS.UNSET,\n dappStatusPolling: setStatusPolling(settings.dappStatusPolling),\n clusterAnchoringStatusPolling: setStatusPolling(settings.clusterAnchoringStatusPolling),\n systemAnchoringStatusPolling: setStatusPolling(settings.systemAnchoringStatusPolling),\n retryTransactionPolling: setRetryTransactionPolling(settings.retryTransactionPolling),\n failoverStrategy: ((_f = settings.failOverConfig) === null || _f === void 0 ? void 0 : _f.strategy) || defaultFailoverConfig.strategy,\n attemptsPerEndpoint: ((_g = settings.failOverConfig) === null || _g === void 0 ? void 0 : _g.attemptsPerEndpoint) || defaultFailoverConfig.attemptsPerEndpoint,\n attemptInterval: ((_h = settings.failOverConfig) === null || _h === void 0 ? void 0 : _h.attemptInterval) || defaultFailoverConfig.attemptInterval,\n unreachableDuration: ((_j = settings.failOverConfig) === null || _j === void 0 ? void 0 : _j.unreachableDuration) || defaultFailoverConfig.unreachableDuration,\n directoryChainRid: settings.directoryChainRid || directoryChainRid,\n connectTimeout: settings.connectTimeout,\n responseTimeout: settings.responseTimeout,\n };\n });\n}\nexport function getMerkleHashVersionFromDapp(config) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n try {\n const response = yield requestWithFailoverStrategy(Method.GET, `/config/${config.blockchainRid}/features`, config, undefined, false, (_a = config.connectTimeout) !== null && _a !== void 0 ? _a : config.responseTimeout);\n const validatedResponse = validateMerkleHash(response.rspBody);\n return validatedResponse.merkle_hash_version;\n }\n catch (error) {\n console.warn(\"MERKLE_HASH_WARNING: version not found or endpoint unreachable\", error);\n return MERKLE_HASH_VERSIONS.ONE;\n }\n });\n}\nexport function validTxRid(txRID) {\n if (txRID.length != 32) {\n const error = new InvalidTxRidException(txRID);\n logger.error(error.toString());\n return false;\n }\n return true;\n}\nexport function nodeDiscovery(_a) {\n return __awaiter(this, arguments, void 0, function* ({ nodeManager, directoryEndpointPool, failOverConfig, blockchainRid, blockchainIid, connectTimeout, responseTimeout, }) {\n if (directoryEndpointPool.length === 0) {\n throw new DirectoryNodeUrlPoolException();\n }\n if (!blockchainRid && blockchainIid === undefined) {\n throw new MissingBlockchainIdentifierError();\n }\n const directoryIid = 0;\n const directoryBRID = yield getBlockchainRidFromIid({\n nodeManager,\n endpointPool: directoryEndpointPool,\n chainId: directoryIid,\n failOverConfig,\n connectTimeout,\n responseTimeout,\n });\n const blockchainRidToUse = yield (() => __awaiter(this, void 0, void 0, function* () {\n if (blockchainRid) {\n return blockchainRid;\n }\n if (blockchainIid !== undefined) {\n return yield getBlockchainRidFromIid({\n nodeManager,\n endpointPool: directoryEndpointPool,\n chainId: blockchainIid,\n failOverConfig,\n connectTimeout,\n responseTimeout,\n });\n }\n throw new MissingBlockchainIdentifierError();\n }))();\n const D1Client = yield createClient({\n nodeUrlPool: getUrlsFromEndpoints(directoryEndpointPool),\n blockchainRid: directoryBRID,\n });\n return yield getBlockchainApiUrls(D1Client, ensureBuffer(blockchainRidToUse));\n });\n}\nexport function getBlockchainApiUrls(directoryClient, blockchainRid) {\n return __awaiter(this, void 0, void 0, function* () {\n const queryObject = {\n name: \"cm_get_blockchain_api_urls\",\n args: { blockchain_rid: blockchainRid },\n };\n return yield directoryClient.query(queryObject);\n });\n}\nexport function convertToRellOperation(operations) {\n return operations.map(operation => {\n var _a;\n return {\n opName: operation.name,\n args: (_a = operation.args) !== null && _a !== void 0 ? _a : [],\n };\n });\n}\nexport function getSerializedGTX(gtx) {\n const gtxBytes = encodeTransaction(gtx);\n if (!Buffer.isBuffer(gtxBytes)) {\n throw new SerializedTransactionFormatException();\n }\n return gtxBytes;\n}\nexport function getGTXFromBufferOrTransactionOrOperation(transaction, blockchainRid) {\n if (Buffer.isBuffer(transaction)) {\n return gtxTool.deserialize(transaction);\n }\n else if (\"operations\" in transaction) {\n return {\n blockchainRid: ensureBuffer(blockchainRid),\n operations: convertToRellOperation(transaction.operations),\n signers: transaction.signers,\n signatures: [],\n };\n }\n else if (\"name\" in transaction) {\n return {\n blockchainRid: ensureBuffer(blockchainRid),\n operations: convertToRellOperation([transaction]),\n signers: [],\n signatures: [],\n };\n }\n else {\n throw new InvalidTransactionFormatException();\n }\n}\nexport const callbackPromiseBuilder = (reject, resolve, callback) => {\n return (error, result) => {\n var _a;\n if (error) {\n callback === null || callback === void 0 ? void 0 : callback(error, null);\n reject(error);\n }\n else {\n callback === null || callback === void 0 ? void 0 : callback(null, (_a = result) !== null && _a !== void 0 ? _a : null);\n resolve(result !== null && result !== void 0 ? result : null);\n }\n };\n};\nexport const handlePostResponsePromisified = (error, statusCode, rspBody) => {\n return new Promise((resolve, reject) => {\n handlePostResponse(error, statusCode, rspBody, _error => {\n if (_error) {\n reject(_error);\n }\n else {\n resolve();\n }\n });\n });\n};\nfunction ensureArray(input) {\n if (typeof input === \"string\") {\n return [input];\n }\n return input;\n}\nexport const formatTransactionInfoResponse = (transactionInfoResponse) => {\n return {\n blockRid: toBuffer(transactionInfoResponse.blockRID),\n blockHeight: transactionInfoResponse.blockHeight,\n blockHeader: toBuffer(transactionInfoResponse.blockHeader),\n witness: toBuffer(transactionInfoResponse.witness),\n timestamp: transactionInfoResponse.timestamp,\n txRid: toBuffer(transactionInfoResponse.txRID),\n txHash: toBuffer(transactionInfoResponse.txHash),\n txData: toBuffer(transactionInfoResponse.txData),\n };\n};\nexport const formatBlockInfoResponse = (blockInfoResponse) => {\n return {\n rid: toBuffer(blockInfoResponse.rid),\n prevBlockRid: toBuffer(blockInfoResponse.prevBlockRID),\n header: toBuffer(blockInfoResponse.header),\n transactions: blockInfoResponse.transactions.map(formatTransaction),\n height: blockInfoResponse.height,\n witness: toBuffer(blockInfoResponse.witness),\n witnesses: blockInfoResponse.witnesses.map(witness => {\n return toBuffer(witness);\n }),\n timestamp: blockInfoResponse.timestamp,\n };\n};\nconst formatTransaction = (transaction) => {\n const formattedTransaction = {\n rid: toBuffer(transaction.rid),\n hash: toBuffer(transaction.hash),\n };\n if (transaction.data !== undefined) {\n formattedTransaction.data = toBuffer(transaction.data);\n }\n return formattedTransaction;\n};\nexport function formatRejectedTransactionFromResponse(rejectedTransactionResponse) {\n return {\n txRid: toBuffer(rejectedTransactionResponse.txRID),\n rejectReason: rejectedTransactionResponse.rejectReason,\n rejectTimestamp: rejectedTransactionResponse.rejectTimestamp,\n };\n}\nexport const isKeyPair = (keypair) => {\n return (typeof keypair === \"object\" &&\n keypair !== null &&\n \"privKey\" in keypair &&\n \"pubKey\" in keypair &&\n keypair.privKey instanceof Buffer &&\n keypair.pubKey instanceof Buffer);\n};\nfunction getNodeUrlsFromSettings(settings) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n if (settings.directoryNodeUrlPool) {\n // If directoryNodeUrlPool is provided, use nodeDiscovery\n const nodeManager = createNodeManager({\n nodeUrls: ensureArray(settings.directoryNodeUrlPool),\n unavailableDuration: (_a = settings.failOverConfig) === null || _a === void 0 ? void 0 : _a.unreachableDuration,\n });\n const discoveredNodes = yield nodeDiscovery({\n nodeManager,\n directoryEndpointPool: createEndpointObjects(ensureArray(settings.directoryNodeUrlPool)),\n failOverConfig: settings.failOverConfig,\n blockchainRid: settings.blockchainRid,\n blockchainIid: settings.blockchainIid,\n connectTimeout: settings.connectTimeout,\n responseTimeout: settings.responseTimeout,\n });\n return discoveredNodes;\n }\n else if (typeof settings.nodeUrlPool === \"string\") {\n // If nodeUrlPool is a string, convert it to an array\n return [settings.nodeUrlPool];\n }\n else if (Array.isArray(settings.nodeUrlPool)) {\n // If nodeUrlPool is already an array, use it as-is\n return settings.nodeUrlPool;\n }\n else {\n // Default to an empty array if no valid configuration is provided\n return [];\n }\n });\n}\nexport function getSystemClient(directoryNodeUrlPool, directoryChainRid) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield createClient({\n directoryNodeUrlPool,\n blockchainRid: directoryChainRid,\n });\n });\n}\nexport function getSystemAnchoringChain(directoryClient) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const queryObject = {\n name: \"cm_get_system_anchoring_chain\",\n };\n const systemAnchoringChain = yield directoryClient.query(queryObject);\n if (!systemAnchoringChain) {\n throw new SystemChainException(\"Directory chain client must be provided.\");\n }\n return systemAnchoringChain;\n }\n catch (error) {\n throw new SystemChainException(error.message);\n }\n });\n}\nexport const defaultFailoverConfig = {\n strategy: FailoverStrategy.AbortOnError,\n attemptsPerEndpoint: 3,\n attemptInterval: 500,\n unreachableDuration: 30000,\n};\nexport const createEndpointObjects = (endpointPoolUrls) => {\n const endpoints = endpointPoolUrls.map(endpointUrl => {\n return { url: endpointUrl, whenAvailable: 0 };\n });\n return endpoints;\n};\nexport const getUrlsFromEndpoints = (endpointPool) => {\n return endpointPool.map(endpoint => endpoint.url);\n};\nexport function awaitDappConfirmation(txRID, dappStatusPolling, getTransactionStatus) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n let lastKnownResult = null;\n for (let i = 0; i < dappStatusPolling.count; i++) {\n lastKnownResult = yield getTransactionStatus(txRID);\n if (lastKnownResult.status === ResponseStatus.Confirmed) {\n return lastKnownResult;\n }\n else if (lastKnownResult.status === ResponseStatus.Rejected) {\n throw new TxRejectedError((_a = lastKnownResult.rejectReason) !== null && _a !== void 0 ? _a : \"\");\n }\n yield sleep(dappStatusPolling.interval);\n }\n throw new Error(`Retry count exceeded. Confirmation not received. Last transaction status: ${lastKnownResult === null || lastKnownResult === void 0 ? void 0 : lastKnownResult.status}`);\n });\n}\nexport function awaitClusterAnchoringChainConfirmation(txRID, clusterAnchoringStatusPolling, getClusterAnchoringTransactionConfirmation) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n let clusterAnchoringConfirmation;\n for (let i = 0; i < clusterAnchoringStatusPolling.count; i++) {\n clusterAnchoringConfirmation = yield getClusterAnchoringTransactionConfirmation(txRID);\n const anchoringTransactionValidaiton = AnchoringTransactionSchema.safeParse(clusterAnchoringConfirmation);\n if (anchoringTransactionValidaiton.success) {\n return {\n status: AnchoringStatus.ClusterAnchored,\n clusterAnchoredTx: anchoringTransactionValidaiton.data,\n };\n }\n else if (!anchoringTransactionValidaiton.success) {\n throw new TxRejectedError((_a = AnchoringStatus.FailedAnchoring) !== null && _a !== void 0 ? _a : \"\");\n }\n yield sleep(clusterAnchoringStatusPolling.interval);\n }\n // TS issue. This could be fixed by implementing new retry strategy\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-expect-error\n return clusterAnchoringConfirmation;\n });\n}\nexport function handleDappConfirmations(transactionRid, doStatusPolling, confirmationLevel, promiEvent, dappStatusPolling, getTransactionStatus, client) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n const transactionReceipt = {\n status: ResponseStatus.Pending,\n statusCode: null,\n transactionRid: transactionRid,\n node: (_a = client.config.nodeManager.lastUsedNode) === null || _a === void 0 ? void 0 : _a.url,\n };\n promiEvent.emit(TransactionEvent.DappReceived, transactionReceipt);\n if (doStatusPolling === false || confirmationLevel === ChainConfirmationLevel.None) {\n return transactionReceipt;\n }\n const dappConfirmationStatus = yield awaitDappConfirmation(transactionRid, dappStatusPolling, getTransactionStatus);\n transactionReceipt.statusCode = dappConfirmationStatus.statusCode;\n transactionReceipt.status = dappConfirmationStatus.status;\n transactionReceipt.node = (_b = client.config.nodeManager.lastUsedNode) === null || _b === void 0 ? void 0 : _b.url;\n promiEvent.emit(TransactionEvent.DappConfirmed, transactionReceipt);\n if (confirmationLevel === ChainConfirmationLevel.Dapp) {\n return transactionReceipt;\n }\n return transactionReceipt;\n });\n}\nexport function handleSystemConfirmations(transactionReceipt, confirmationLevel, promiEvent, statusPollingConfig, anchoringClient, systemAnchoringChainBrid, getClusterAnchoringTransactionConfirmation, getSystemAnchoringTransactionConfirmation) {\n return __awaiter(this, void 0, void 0, function* () {\n const clusterAnchoringChainConfirmation = yield awaitClusterAnchoringChainConfirmation(transactionReceipt.transactionRid, statusPollingConfig.clusterAnchoringStatusPolling, getClusterAnchoringTransactionConfirmation);\n transactionReceipt.status = clusterAnchoringChainConfirmation.status;\n transactionReceipt.clusterAnchoredTx = clusterAnchoringChainConfirmation.clusterAnchoredTx;\n transactionReceipt.clusterAnchoringClientBrid = anchoringClient.config.blockchainRid;\n promiEvent.emit(TransactionEvent.ClusterAnchoringConfirmation, transactionReceipt);\n if (confirmationLevel === ChainConfirmationLevel.ClusterAnchoring) {\n return transactionReceipt;\n }\n const systemAnchoringConfirmation = yield getSystemAnchoringTransactionConfirmation(clusterAnchoringChainConfirmation.clusterAnchoredTx.txRid, anchoringClient, systemAnchoringChainBrid);\n if (!systemAnchoringConfirmation) {\n return transactionReceipt;\n }\n transactionReceipt.status = AnchoringStatus.SystemAnchored;\n transactionReceipt.systemAnchoredTx = systemAnchoringConfirmation;\n transactionReceipt.systemAnchoringClientBrid = systemAnchoringChainBrid;\n promiEvent.emit(TransactionEvent.SystemAnchoringConfirmation, transactionReceipt);\n if (confirmationLevel === ChainConfirmationLevel.SystemAnchoring) {\n return transactionReceipt;\n }\n return transactionReceipt;\n });\n}\nexport function getAnchoringClientAndSystemChainRid(client) {\n return __awaiter(this, void 0, void 0, function* () {\n const directoryClient = yield getSystemClient(getUrlsFromEndpoints(client.config.endpointPool), client.config.directoryChainRid);\n const anchoringClient = yield getAnchoringClient(directoryClient, client.config.blockchainRid);\n const systemAnchoringChainRidBuffer = yield getSystemAnchoringChain(directoryClient);\n const systemAnchoringChainBridString = systemAnchoringChainRidBuffer.toString(\"hex\");\n return { anchoringClient, systemAnchoringChainBridString };\n });\n}\nexport function getSystemAnchoringTransaction(dappClientEndpointPool, anchoredTxRid, anchoringClient, systemAnchoringChainRid, systemAnchoringStatusPolling, merkleHashVersion) {\n return __awaiter(this, void 0, void 0, function* () {\n const systemAnchoringChainClient = yield getSystemClient(getUrlsFromEndpoints(dappClientEndpointPool), systemAnchoringChainRid);\n const clusterAnchoringProof = yield anchoringClient.getConfirmationProof(anchoredTxRid);\n const clusterBlockRid = calculateBlockRID(clusterAnchoringProof, merkleHashVersion);\n const systemAnchoringTransactionConfirmation = yield awaitGetAnchoringTransactionForBlockRid(systemAnchoringChainClient, toBuffer(anchoringClient.config.blockchainRid), clusterBlockRid, systemAnchoringStatusPolling);\n const systemAnchoringTransactionValidation = AnchoringTransactionSchema.safeParse(systemAnchoringTransactionConfirmation);\n if (!systemAnchoringTransactionValidation.success) {\n return null;\n }\n return systemAnchoringTransactionValidation.data;\n });\n}\n/**\n * Should be used to configure the `IClient` `ClientConfig` (config) properties\n * `dappStatusPolling`, `clusterAnchoringStatusPolling` and `systemAnchoringStatusPolling` with\n * the corresponding status polling configuration `interval` and `status`.\n * If the values are not provided, they do default to `500` for `interval` and `20` for `count`\n *\n * @param statusPolling - An optional partial configuration object, that can set the status polling interval and count properties\n * @returns - Returns a complete `StatusPolling` configuration object, with default values for any missing properties\n * of the provided partial configuration\n */\nexport function setStatusPolling(statusPolling) {\n var _a, _b;\n return {\n interval: (_a = statusPolling === null || statusPolling === void 0 ? void 0 : statusPolling.interval) !== null && _a !== void 0 ? _a : 500,\n count: (_b = statusPolling === null || statusPolling === void 0 ? void 0 : statusPolling.count) !== null && _b !== void 0 ? _b : 20,\n };\n}\nexport function setRetryTransactionPolling(statusPolling) {\n var _a, _b;\n return {\n interval: (_a = statusPolling === null || statusPolling === void 0 ? void 0 : statusPolling.interval) !== null && _a !== void 0 ? _a : 500,\n count: (_b = statusPolling === null || statusPolling === void 0 ? void 0 : statusPolling.count) !== null && _b !== void 0 ? _b : 3,\n };\n}\nexport function linkPromiEvents(event1, event2) {\n const transactionEvents = Object.values(TransactionEvent).filter((event) => typeof event === \"string\");\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const forwardEvent = (eventName) => (receipt) => event2.emit(eventName, receipt);\n for (const eventName of transactionEvents) {\n event1.on(eventName, forwardEvent(eventName));\n }\n}\n/**\n * @param error response error\n * @param statusCode response status code\n * @param responseObject the responsebody from the server\n * @param callback the callback function to propagate the error and response back to the caller\n */\nexport function handleGetResponse(error, statusCode, responseObject, callback) {\n try {\n const responseObjectPrintable = convertToPrintable(responseObject);\n logger.debug(`error: ${error}, status code: ${statusCode}, response body: ${responseObjectPrintable}`);\n if (error) {\n return callback(error, null);\n }\n if (statusCode !== 200) {\n return callback(new UnexpectedStatusError(statusCode !== null && statusCode !== void 0 ? statusCode : 400, responseObjectPrintable), null);\n }\n return callback(null, responseObject);\n }\n catch (error) {\n callback(error, null);\n logger.error(`client.handleGetResponse(): Failed to call the callback function. ${error}`);\n }\n}\n/**\n * @param error response error\n * @param statusCode response status code\n * @param responseObject the responsebody from the server\n * @param callback the callback function to propagate the error and response back to the caller\n */\nexport function handlePostResponse(error, statusCode, responseObject, callback) {\n var _a;\n const responseObjectPrintable = convertToPrintable(responseObject);\n logger.debug(`error: ${error}, status code: ${statusCode}, response body: ${responseObjectPrintable}`);\n try {\n if (error) {\n logger.error(`In client post(). ${error}`);\n callback(error, null);\n }\n else if (!statusCode || !isSuccessfulStatusCode(statusCode)) {\n let errorMessage = `Unexpected status code from server. Code: ${statusCode}.`;\n const errorMessageInResponseBody = !!responseObject && typeof responseObject === \"object\" && \"error\" in responseObject\n ? (_a = responseObject.error) === null || _a === void 0 ? void 0 : _a.toString()\n : \"\";\n if (responseObjectPrintable) {\n errorMessage += ` Message: ${responseObjectPrintable}.`;\n }\n logger.error(errorMessage);\n callback(new UnexpectedStatusError(statusCode !== null && statusCode !== void 0 ? statusCode : 400, errorMessageInResponseBody || responseObjectPrintable), responseObject);\n }\n else {\n logger.info(`Calling responseCallback with responseObject: ${responseObjectPrintable}`);\n callback(null, responseObject);\n }\n }\n catch (error) {\n logger.error(`client.handlePostResponse(): Failed to call callback function ${error}`);\n }\n}\nexport function getBlockchainRidFromIid(_a) {\n return __awaiter(this, arguments, void 0, function* ({ endpointPool, chainId, failOverConfig = {}, nodeManager, connectTimeout, responseTimeout, }) {\n var _b;\n const mergedFailOverConfig = Object.assign(Object.assign({}, defaultFailoverConfig), failOverConfig);\n const config = {\n endpointPool,\n nodeManager,\n dappStatusPolling: setStatusPolling(),\n clusterAnchoringStatusPolling: setStatusPolling(),\n systemAnchoringStatusPolling: setStatusPolling(),\n retryTransactionPolling: setRetryTransactionPolling(),\n failoverStrategy: mergedFailOverConfig.strategy,\n attemptsPerEndpoint: mergedFailOverConfig.attemptsPerEndpoint,\n attemptInterval: mergedFailOverConfig.attemptInterval,\n unreachableDuration: mergedFailOverConfig.unreachableDuration,\n merkleHashVersion: MERKLE_HASH_VERSIONS.UNSET,\n connectTimeout,\n responseTimeout,\n };\n const { error, statusCode, rspBody } = yield requestWithFailoverStrategy(Method.GET, `/brid/iid_${chainId}`, config, undefined, false, (_b = config.connectTimeout) !== null && _b !== void 0 ? _b : config.responseTimeout);\n const blockchainRid = isString(rspBody);\n if (!blockchainRid) {\n throw error;\n }\n if (error) {\n throw new GetBridFromChainException(chainId, error.message);\n }\n else if (statusCode !== 200) {\n throw new GetBridFromChainException(chainId, blockchainRid);\n }\n return blockchainRid;\n });\n}\nexport const sleep = (ms) => new Promise(r => setTimeout(r, ms));\nexport function convertToPrintable(responseObject) {\n if (typeof responseObject === \"bigint\") {\n return `${responseObject}n`;\n }\n else if (typeof responseObject === \"object\") {\n return JSON.stringify(responseObject, (key, value) => typeof value === \"bigint\" ? `${value}n` : value);\n }\n else {\n return String(responseObject);\n }\n}\n//# sourceMappingURL=utils.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { Buffer } from \"buffer\";\nimport { TxRejectedError } from \"../blockchainClient/errors\";\nimport { sleep } from \"../blockchainClient/utils\";\nimport { AnchoringTransactionSchema } from \"../blockchainClient/validation/anchoringTransaction\";\nimport { checkDigestSignature } from \"../encryption/encryption\";\nimport { ensureBuffer } from \"../formatter\";\nimport { gtvHash } from \"../gtv\";\nimport { getDigestToSign, rawGtvToGtx } from \"../gtx/gtx\";\nimport { decodeValue, encodeValue } from \"../gtx/serialization\";\nimport { DifferentNumberOfSignersException, MissingTransactionProof, ProofRidException, SignatureException, SystemChainException, } from \"./error\";\nexport function getClusterOfBlockchain(client, blockchainRid) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const clusterName = yield client.query({\n name: \"cm_get_blockchain_cluster\",\n args: { brid: blockchainRid },\n });\n return clusterName;\n }\n catch (error) {\n throw new SystemChainException(error.message);\n }\n });\n}\nexport function getClusterInfo(client, name) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const clusterInfo = yield client.query({\n name: \"cm_get_cluster_info\",\n args: { name },\n });\n return clusterInfo;\n }\n catch (error) {\n throw new SystemChainException(error.message);\n }\n });\n}\nexport function awaitGetAnchoringTransactionForBlockRid(client, blockchainRid, blockRid, systemAnchoringStatusPolling) {\n return __awaiter(this, void 0, void 0, function* () {\n let anchoringTransactionResponse = null;\n for (let i = 0; i < systemAnchoringStatusPolling.count; i++) {\n anchoringTransactionResponse = yield getAnchoringTransactionForBlockRid(client, blockchainRid, blockRid);\n if (anchoringTransactionResponse) {\n const anchoringTransactionValidaiton = AnchoringTransactionSchema.safeParse(anchoringTransactionResponse);\n if (anchoringTransactionValidaiton.success) {\n return anchoringTransactionValidaiton.data;\n }\n else if (!anchoringTransactionValidaiton.success) {\n throw new TxRejectedError(\"Invalid anchoring transaction format\");\n }\n }\n yield sleep(systemAnchoringStatusPolling.interval);\n }\n return anchoringTransactionResponse;\n });\n}\nexport function getAnchoringTransactionForBlockRid(client, blockchainRid, blockRid) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const anchoringTxForBlockRid = yield client.query({\n name: \"get_anchoring_transaction_for_block_rid\",\n args: { blockchain_rid: blockchainRid, block_rid: blockRid },\n });\n if (!anchoringTxForBlockRid)\n return null;\n return convertToAnchoringTransaction(anchoringTxForBlockRid);\n }\n catch (error) {\n throw new SystemChainException(error.message);\n }\n });\n}\nexport function convertToAnchoringTransaction(responseTx) {\n const { tx_rid, tx_data, tx_op_index } = responseTx;\n return {\n txRid: tx_rid,\n txData: tx_data,\n txOpIndex: tx_op_index,\n };\n}\nexport function calculateBlockRID(decodedTxProof, merkleHashVersion) {\n const sourceBlockHeader = decodedTxProof.blockHeader;\n if (!sourceBlockHeader) {\n throw new Error(\"Failed to get blockHeader from confirmation proof\");\n }\n const decodeSourceBlockRid = decodeValue(sourceBlockHeader);\n return gtvHash(decodeSourceBlockRid, merkleHashVersion);\n}\n// fetch tx from txRID and verifies with secp256k1.ecdsaVerify that txRID and signer creates signatures that are on the blockchain transaction\nexport function fetchAndVerifyTransaction(sourceClient, txToProveRID, proofHash, txToProveSigners) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c;\n const rawTx = yield sourceClient.getTransaction(txToProveRID);\n const txGtv = decodeValue(rawTx);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const fetchedTxHash = gtvHash(txGtv, sourceClient.config.merkleHashVersion);\n if (Buffer.compare(fetchedTxHash, proofHash)) {\n // We received another hash for tx RID than what was included in proof\n // Possibly rouge or faulty node(s). Anyway, we need to give up.\n throw new MissingTransactionProof(proofHash, fetchedTxHash);\n }\n const fetchedTx = rawGtvToGtx(txGtv);\n if (txToProveSigners.length != ((_a = fetchedTx.signatures) === null || _a === void 0 ? void 0 : _a.length)) {\n throw new DifferentNumberOfSignersException((_c = (_b = fetchedTx.signatures) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0, txToProveSigners.length);\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const txRID = getDigestToSign(fetchedTx, sourceClient.config.merkleHashVersion);\n if (Buffer.compare(txRID, ensureBuffer(txToProveRID))) {\n throw new ProofRidException();\n }\n for (const signer of txToProveSigners) {\n let hasSignature = false;\n for (const signature of fetchedTx.signatures) {\n // verify that txRID (hash of gtxBody) signed by signers equals the signatures from network\n if (checkDigestSignature(txRID, signer, signature)) {\n hasSignature = true;\n break;\n }\n }\n if (!hasSignature)\n throw new SignatureException(signer);\n }\n return { verifiedTx: fetchedTx, verifiedTxHash: fetchedTxHash };\n });\n}\nexport function composeProofTransactionObject(sourceBlockchainRid, verifiedTxHash, txProof, iccfTxSigners, anchoringTx, anchoringProof, isNetwork = true) {\n let operationArgs;\n operationArgs = {\n sourceBlockchainRid: ensureBuffer(sourceBlockchainRid),\n transactionHash: verifiedTxHash,\n transactionProof: encodeValue(txProof),\n };\n if (isNetwork) {\n operationArgs = Object.assign(Object.assign({}, operationArgs), { transactionData: anchoringTx === null || anchoringTx === void 0 ? void 0 : anchoringTx.txData, transactionIndex: anchoringTx === null || anchoringTx === void 0 ? void 0 : anchoringTx.txOpIndex, anchoringProof: anchoringProof && encodeValue(anchoringProof) });\n }\n return {\n operations: [\n {\n name: \"iccf_proof\",\n args: Object.values(operationArgs),\n },\n ],\n signers: iccfTxSigners,\n };\n}\n//# sourceMappingURL=utils.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { createClient } from \"../blockchainClient/blockchainClient\";\nimport { awaitGetAnchoringTransactionForBlockRid, calculateBlockRID, composeProofTransactionObject, fetchAndVerifyTransaction, getClusterInfo, getClusterOfBlockchain, } from \"./utils\";\nimport { toString, toBuffer, ensureString, ensureBuffer } from \"../formatter\";\nimport { BlockAnchoringException, ConfirmationProofException } from \"./error\";\nimport { getUrlsFromEndpoints } from \"../blockchainClient/utils\";\nimport { FailoverStrategy } from \"../blockchainClient/enums\";\n/**\n * Creates an ICCF (Inter-Chain Communication Framework) proof transaction.\n * This function generates a proof that a specific transaction has occurred on the source blockchain\n * and constructs an ICCF proof transaction that can be posted to the target blockchain.\n *\n * @param {IClient} directoryClient - The client configured to communicate with the management chain.\n * @param {BufferId} txToProveRid - The RID of the transaction to be proven.\n * @param {Buffer} txToProveHash - The hash of the transaction to be proven.\n * @param {PubKey[]} txToProveSigners - An array of public keys representing signers of the transaction to be proven.\n * @param {BufferId} sourceBlockchainRid - The RID of the source blockchain.\n * @param {BufferId} targetBlockchainRid - The RID of the target blockchain.\n * @param {PubKey[]} iccfTxSigners - An array of public keys representing signers of the ICCF proof transaction (optional, default: []).\n * @param {boolean} forceIntraNetworkIccfOperation - Whether to force the ICCF operation to be performed within the same network (optional, default: false).\n * @param {number} merkleHashVersion - The version of the merkle hash to use.\n * @param {string} nodeIdentifierURL - The URL of the node to use.\n * @returns {Promise<IccfProof>} A promise that resolves to an ICCF proof object containing the ICCF proof transaction.\n */\nexport function createIccfProofTx(directoryClient_1, txToProveRid_1, txToProveHash_1, txToProveSigners_1, sourceBlockchainRid_1, targetBlockchainRid_1) {\n return __awaiter(this, arguments, void 0, function* (directoryClient, txToProveRid, txToProveHash, txToProveSigners, sourceBlockchainRid, targetBlockchainRid, iccfTxSigners = [], forceIntraNetworkIccfOperation = false, merkleHashVersion, nodeIdentifierURL) {\n let clientConfiguredToSource;\n if (!nodeIdentifierURL) {\n clientConfiguredToSource = yield createClient({\n directoryNodeUrlPool: getUrlsFromEndpoints(directoryClient.config.endpointPool),\n blockchainRid: ensureString(sourceBlockchainRid),\n merkleHashVersion: merkleHashVersion,\n useStickyNode: true,\n });\n }\n else {\n clientConfiguredToSource = yield createClient({\n nodeUrlPool: nodeIdentifierURL,\n blockchainRid: ensureString(sourceBlockchainRid),\n merkleHashVersion: merkleHashVersion,\n useStickyNode: true,\n });\n }\n const txProof = yield clientConfiguredToSource.getConfirmationProof(txToProveRid);\n if (!txProof || !txProof.hash) {\n throw new ConfirmationProofException(txToProveRid);\n }\n const proofHash = txProof.hash;\n const { verifiedTx, verifiedTxHash } = !txToProveHash.equals(proofHash)\n ? yield fetchAndVerifyTransaction(clientConfiguredToSource, txToProveRid, proofHash, txToProveSigners)\n : { verifiedTx: null, verifiedTxHash: txToProveHash };\n const sourceCluster = yield getClusterOfBlockchain(directoryClient, ensureBuffer(sourceBlockchainRid));\n const targetCluster = yield getClusterOfBlockchain(directoryClient, ensureBuffer(targetBlockchainRid));\n if (!forceIntraNetworkIccfOperation && sourceCluster === targetCluster) {\n // intra-cluster\n const intraClusterProofTx = composeProofTransactionObject(sourceBlockchainRid, verifiedTxHash, txProof, iccfTxSigners, undefined, undefined, false);\n return { iccfTx: intraClusterProofTx };\n }\n else {\n // intra-network\n const systemClientUsingStickyNode = Object.assign(Object.assign({}, directoryClient), { config: Object.assign(Object.assign({}, directoryClient.config), { failoverStrategy: FailoverStrategy.SingleEndpoint }) });\n const anchoringClient = yield getAnchoringClient(systemClientUsingStickyNode, sourceBlockchainRid, sourceCluster);\n const clusterAnchoredTx = yield getBlockAnchoringTransaction(clientConfiguredToSource, anchoringClient, undefined, txProof);\n if (!clusterAnchoredTx) {\n throw new BlockAnchoringException();\n }\n const anchoringProof = yield anchoringClient.getConfirmationProof(clusterAnchoredTx.txRid);\n const intraNetworkProofTx = composeProofTransactionObject(sourceBlockchainRid, verifiedTxHash, txProof, iccfTxSigners, clusterAnchoredTx, anchoringProof);\n return { iccfTx: intraNetworkProofTx, verifiedTx };\n }\n });\n}\n/**\n * Checks whether a given transaction is included in the cluster anchoring chain and returns the\n * block anchoring transaction. If `txProof` is not provided, it fetches the confirmation proof\n * using the `sourceClient`.\n *\n * @param sourceClient - A client configured to the blockchain where the transaction was made.\n * @param anchoringClient - The client responsible for querying the anchoring blockchain.\n * @param txRid - The transaction RID to check for anchoring.\n * @param txProof - (Optional) The transaction proof for the specified `txRid`.\n * @returns A Promise that resolves to the anchored transaction response object.\n */\nexport function getBlockAnchoringTransaction(sourceClient, anchoringClient, txRid, txProof) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!txRid && !txProof) {\n throw Error(\"Missing a txRid or TxProof\");\n }\n const confirmationProof = txProof !== null && txProof !== void 0 ? txProof : (txRid && (yield sourceClient.getConfirmationProof(txRid)));\n if (!confirmationProof) {\n throw Error(\"Confirmation proof not found\");\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const blockRid = calculateBlockRID(confirmationProof, sourceClient.config.merkleHashVersion);\n const blockchainRid = sourceClient.config.blockchainRid;\n const anchoringTxResponse = yield awaitGetAnchoringTransactionForBlockRid(anchoringClient, toBuffer(blockchainRid), blockRid, sourceClient.config.clusterAnchoringStatusPolling);\n return anchoringTxResponse;\n });\n}\n/**\n * Checks whether a given transaction is included in the anchoring blockchain.\n *\n * @param sourceClient - A client configured to the blockchain where the transaction was made.\n * @param anchoringClient - The client responsible for querying the anchoring blockchain.\n * @param txRid - The transaction RID to check for anchoring.\n * @param txProof - (Optional) The transaction proof for the specified `txRid`.\n * @returns A Promise that resolves to `true` if the transaction is anchored, `false` otherwise.\n */\nexport function isBlockAnchored(sourceClient, anchoringClient, txRid, txProof) {\n return __awaiter(this, void 0, void 0, function* () {\n return !!(yield getBlockAnchoringTransaction(sourceClient, anchoringClient, txRid, txProof));\n });\n}\n/**\n * Gets a client configured for the cluster anchoring blockchain of a cluster. Takes a specific\n * cluster name or blockchain RID to determine the cluster.\n * @param client - The client configured to communicate with the management chain.\n * @param dappBlockchainRid - (Optional) The RID of a blockchain which anchoring wants to be checked.\n * @param cluster - (Optional) The cluster of interest.\n * @returns A Promise that resolves to the client configured to a cluster anchoring chain.\n */\nexport function getAnchoringClient(client, dappBlockchainRid, cluster) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!dappBlockchainRid && !cluster) {\n throw Error(\"Missing a dapp blockchainRid or cluster name\");\n }\n const sourceCluster = cluster !== null && cluster !== void 0 ? cluster : (dappBlockchainRid && (yield getClusterOfBlockchain(client, ensureBuffer(dappBlockchainRid))));\n if (!sourceCluster) {\n throw Error(\"No cluster could be found\");\n }\n const sourceClusterInfo = yield getClusterInfo(client, sourceCluster);\n if (!sourceClusterInfo || !sourceClusterInfo.anchoring_chain) {\n throw Error(\"Cluster info could not be found\");\n }\n const networkSettings = Object.assign(Object.assign({}, client.config), { directoryNodeUrlPool: getUrlsFromEndpoints(client.config.endpointPool), blockchainRid: toString(sourceClusterInfo.anchoring_chain) });\n const clientConfiguredToAnchoringchain = yield createClient(networkSettings);\n return clientConfiguredToAnchoringchain;\n });\n}\n//# sourceMappingURL=IccfProofTxMaterialBuilder.js.map","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { EventEmitter } from \"events\";\nexport class Web3EventEmitter {\n constructor() {\n this._emitter = new EventEmitter();\n }\n on(eventName, fn) {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n this._emitter.on(eventName, fn);\n }\n once(eventName, fn) {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n this._emitter.once(eventName, fn);\n }\n off(eventName, fn) {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n this._emitter.off(eventName, fn);\n }\n emit(eventName, params) {\n this._emitter.emit(eventName, params);\n }\n listenerCount(eventName) {\n return this._emitter.listenerCount(eventName);\n }\n listeners(eventName) {\n return this._emitter.listeners(eventName);\n }\n eventNames() {\n return this._emitter.eventNames();\n }\n removeAllListeners() {\n this._emitter.removeAllListeners();\n }\n setMaxListenerWarningThreshold(maxListenersWarningThreshold) {\n this._emitter.setMaxListeners(maxListenersWarningThreshold);\n }\n getMaxListeners() {\n return this._emitter.getMaxListeners();\n }\n}\n//# sourceMappingURL=promiEventEmitter.js.map","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar _a;\nimport { Web3EventEmitter, } from \"./promiEventEmitter\";\nexport class Web3PromiEvent extends Web3EventEmitter {\n constructor(executor) {\n super();\n // public tag to treat object as promise by different libs\n // eslint-disable-next-line @typescript-eslint/prefer-as-const\n this[_a] = \"Promise\";\n this._promise = new Promise(executor);\n }\n then(onfulfilled, onrejected) {\n return __awaiter(this, void 0, void 0, function* () {\n return this._promise.then(onfulfilled, onrejected);\n });\n }\n catch(onrejected) {\n return __awaiter(this, void 0, void 0, function* () {\n return this._promise.catch(onrejected);\n });\n }\n finally(onfinally) {\n return __awaiter(this, void 0, void 0, function* () {\n return this._promise.finally(onfinally);\n });\n }\n on(eventName, fn) {\n super.on(eventName, fn);\n return this;\n }\n once(eventName, fn) {\n super.once(eventName, fn);\n return this;\n }\n}\n_a = Symbol.toStringTag;\n//# sourceMappingURL=promiEvents.js.map","import { z } from \"zod\";\nconst WRONG_STRING_LENGTH = \"wrong string length\";\nexport const BlockIdentifierSchema = z.union([\n z.string().refine(val => /^[0-9a-fA-F]{64}$/.test(val), WRONG_STRING_LENGTH),\n z.number(),\n]);\nexport const isBlockIdentifierValid = (blockIdentifier, options) => {\n const ctx = BlockIdentifierSchema.safeParse(blockIdentifier);\n const { success } = ctx;\n const hasError = \"error\" in ctx;\n const { throwOnError = false } = options || {};\n if (!hasError) {\n return { success };\n }\n const { error } = ctx;\n const isInvalidInputType = error === null || error === void 0 ? void 0 : error.issues.some(({ code }) => code === \"invalid_union\");\n const isInvalidStringLength = error === null || error === void 0 ? void 0 : error.issues.some(({ message }) => message === WRONG_STRING_LENGTH);\n const message = (() => {\n if (isInvalidInputType) {\n return `Invalid \"blockIdentifier\" type. Expected string or number, but received ${typeof blockIdentifier}.`;\n }\n if (isInvalidStringLength) {\n return \"Parameter 'blockIdentifier' does not have the correct format (64-character hexadecimal string).\";\n }\n return error === null || error === void 0 ? void 0 : error.issues.map(issue => issue.message).join(\", \");\n })();\n if (throwOnError) {\n throw new Error(message);\n }\n return {\n success,\n error,\n message: error === null || error === void 0 ? void 0 : error.issues.map(issue => issue.message).join(\", \"),\n };\n};\n//# sourceMappingURL=blockIdentifier.js.map","import { z } from \"zod\";\nimport { FailoverStrategy } from \"../enums\";\nimport { MissingBlockchainIdentifierError, MissingNodeUrlError } from \"../errors\";\nconst IdentifierSchema = z.union([\n z.object({\n blockchainRid: z.undefined(),\n blockchainIid: z.number(),\n }),\n z.object({\n blockchainRid: z.string(),\n blockchainIid: z.undefined(),\n }),\n]);\nconst NodeUrlSchema = z.union([\n z.object({\n nodeUrlPool: z.union([z.string(), z.array(z.string())]),\n directoryNodeUrlPool: z.undefined(),\n }),\n z.object({\n nodeUrlPool: z.undefined(),\n directoryNodeUrlPool: z.union([z.string(), z.array(z.string())]),\n }),\n]);\nconst RestNetworkSettingsSchema = z.object({\n statusPollingInterval: z.number().optional(),\n statusPollingCount: z.number().optional(),\n failOverConfig: z\n .object({\n strategy: z.nativeEnum(FailoverStrategy).optional(),\n attemptsPerEndpoint: z.number().optional(),\n attemptInterval: z.number().optional(),\n unreachableDuration: z.number().optional(),\n })\n .optional(),\n});\nexport const validateBlockChainIdentifier = (networkSettings, options) => {\n const { throwOnError = false } = options || {};\n const identifierValidationContext = IdentifierSchema.safeParse(networkSettings);\n if (\"error\" in identifierValidationContext) {\n const missingBlockchainIdentifierError = new MissingBlockchainIdentifierError();\n if (throwOnError) {\n throw missingBlockchainIdentifierError;\n }\n return {\n success: identifierValidationContext.success,\n error: identifierValidationContext.error,\n message: missingBlockchainIdentifierError.message,\n };\n }\n return { success: true };\n};\nconst validateNodeUrl = (networkSettings, options) => {\n const { throwOnError = false } = options || {};\n const nodeUrlValidationContext = NodeUrlSchema.safeParse(networkSettings);\n if (\"error\" in nodeUrlValidationContext) {\n const missingNodeUrlError = new MissingNodeUrlError();\n if (throwOnError) {\n throw missingNodeUrlError;\n }\n return {\n success: nodeUrlValidationContext.success,\n error: nodeUrlValidationContext.error,\n message: missingNodeUrlError.message,\n };\n }\n return { success: true };\n};\nconst validateRestNetworkSettings = (networkSettings, options) => {\n const { throwOnError = false } = options || {};\n const restNetworkSettingsValidationContext = RestNetworkSettingsSchema.safeParse(networkSettings);\n if (\"error\" in restNetworkSettingsValidationContext) {\n const { error: { issues } = {} } = restNetworkSettingsValidationContext;\n const errorMessage = issues === null || issues === void 0 ? void 0 : issues.map(({ message, path }) => `${path[0]}: ${message}`).join(\", \");\n if (throwOnError) {\n throw new Error(errorMessage);\n }\n return {\n success: restNetworkSettingsValidationContext.success,\n error: restNetworkSettingsValidationContext.error,\n message: errorMessage,\n };\n }\n return { success: true };\n};\nexport const isNetworkSettingValid = (networkSettings, options) => {\n const identifierValidationContext = validateBlockChainIdentifier(networkSettings, options);\n if (\"error\" in identifierValidationContext) {\n return identifierValidationContext;\n }\n const nodeUrlValidationContext = validateNodeUrl(networkSettings, options);\n if (\"error\" in nodeUrlValidationContext) {\n return nodeUrlValidationContext;\n }\n const restNetworkSettingsValidationContext = validateRestNetworkSettings(networkSettings, options);\n if (\"error\" in restNetworkSettingsValidationContext) {\n return restNetworkSettingsValidationContext;\n }\n return { success: true };\n};\n//# sourceMappingURL=networkSettings.js.map","import { z } from \"zod\";\nimport { BufferSchema } from \"./bufferSchema\";\nconst KeyPairSchema = z.object({\n privKey: BufferSchema,\n pubKey: BufferSchema,\n});\nconst SignatureProviderSchema = z.object({\n pubKey: BufferSchema,\n sign: z.function().args(BufferSchema).returns(z.promise(BufferSchema)),\n});\nexport const SignMethodSchema = z.union([KeyPairSchema, SignatureProviderSchema]);\nexport const isSignMethodValid = (signMethod, options) => {\n const signMethodValidationCtx = SignMethodSchema.safeParse(signMethod);\n const { throwOnError = false } = options || {};\n const hasError = \"error\" in signMethodValidationCtx;\n if (!hasError) {\n return { success: true };\n }\n const message = \"Invalid sign method\";\n if (throwOnError) {\n throw new Error(message);\n }\n return {\n success: false,\n error: signMethodValidationCtx.error,\n message,\n };\n};\n//# sourceMappingURL=signMethod.js.map","import { z } from \"zod\";\nimport { AnchoringStatus, ResponseStatus } from \"../enums\";\nconst statusEnum = z.union([z.nativeEnum(ResponseStatus), z.nativeEnum(AnchoringStatus)]);\nconst transactionStatusReponseSchema = z\n .object({\n statusCode: z.number().nullable(),\n result: z.object({\n status: statusEnum,\n rejectReason: z.string().optional(),\n }),\n})\n .transform(({ statusCode, result }) => ({\n statusCode,\n status: result.status,\n rejectReason: result.rejectReason,\n}));\nexport function validateTransactionStatusReponse(input) {\n const result = transactionStatusReponseSchema.safeParse(input);\n if (!result.success) {\n throw new Error(\"Model does not match TransactionStatusReponse\");\n }\n return result.data;\n}\n//# sourceMappingURL=transactionStatusReponse.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { randomBytes } from \"crypto\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport { getBlockAnchoringTransaction } from \"../ICCF/IccfProofTxMaterialBuilder\";\nimport * as logger from \"../logger\";\nimport { toBuffer, toString, toQueryObjectGTV, ensureString, ensureBuffer } from \"../formatter\";\nimport { decodeValue, encodeValue } from \"../gtx/serialization\";\nimport * as gtxTool from \"../gtx/gtx\";\nimport { callbackPromiseBuilder, formatBlockInfoResponse, formatTransactionInfoResponse, getClientConfigFromSettings, getGTXFromBufferOrTransactionOrOperation, getSerializedGTX, handlePostResponsePromisified, handleSystemConfirmations, isKeyPair, getAnchoringClientAndSystemChainRid, getSystemAnchoringTransaction, linkPromiEvents, handleGetResponse, handlePostResponse, handleDappConfirmations, getMerkleHashVersionFromDapp, formatRejectedTransactionFromResponse, sleep, } from \"./utils\";\nimport { Web3PromiEvent } from \"../promiEvent/promiEvents\";\nimport { NumberOfSignersAndSignaturesException } from \"../gtx/errors\";\nimport { ResponseStatus, ChainConfirmationLevel, AnchoringStatus, TransactionEvent, Method, } from \"./enums\";\nimport { isBlockIdentifierValid } from \"./validation/blockIdentifier\";\nimport { isNetworkSettingValid } from \"./validation/networkSettings\";\nimport { isSignMethodValid } from \"./validation/signMethod\";\nimport { isTxRidValid } from \"./validation/txRid\";\nimport { AnchoringTransactionSchema } from \"./validation/anchoringTransaction\";\nimport { isBlockInfoResponse, isBlockInfoResponseArray, isRawGtv, isRejectedTransactionResponseArray, isTransaction, isTransactionConfirmationProof, isTransactionInfoResponse, isTransactionInfoResponseArray, isTransactionsCount, } from \"./validation/requests\";\nimport { awaitGetAnchoringTransactionForBlockRid } from \"../ICCF/utils\";\nimport { requestWithFailoverStrategy } from \"./requestWithFailoverStrategy\";\nimport { validateTransactionStatusReponse } from \"./validation/transactionStatusReponse\";\nexport function createClient(settings) {\n return __awaiter(this, void 0, void 0, function* () {\n isNetworkSettingValid(settings, { throwOnError: true });\n const config = yield getClientConfigFromSettings(settings);\n config.merkleHashVersion = yield getMerkleHashVersion(settings);\n return {\n config,\n query(nameOrQueryObject, args, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n let _name, _args;\n if (typeof nameOrQueryObject === \"string\") {\n _name = nameOrQueryObject;\n _args = args;\n }\n else {\n _name = nameOrQueryObject === null || nameOrQueryObject === void 0 ? void 0 : nameOrQueryObject.name;\n _args = nameOrQueryObject === null || nameOrQueryObject === void 0 ? void 0 : nameOrQueryObject.args;\n }\n const { error, statusCode, rspBody } = yield requestWithFailoverStrategy(Method.POST, `query_gtv/${config.blockchainRid}`, config, encodeValue(toQueryObjectGTV(_name, _args)));\n return new Promise((resolve, reject) => {\n handlePostResponse(error, statusCode, isRawGtv(rspBody), callbackPromiseBuilder(reject, resolve, callback));\n });\n });\n },\n signTransaction(transaction, signMethod, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n logger.debug(`Signing transaction with ${!isKeyPair(signMethod) ? \"signature provider containing \" : \"\"}pubKey: ${toString(signMethod.pubKey)}`);\n const gtx = getGTXFromBufferOrTransactionOrOperation(transaction, config.blockchainRid);\n try {\n const signedTx = yield (isKeyPair(signMethod)\n ? gtxTool.sign(gtx, signMethod.privKey, config.merkleHashVersion, signMethod.pubKey)\n : gtxTool.sign(gtx, signMethod, config.merkleHashVersion));\n const gtxBytes = getSerializedGTX(signedTx);\n if (typeof callback === \"function\") {\n callback(null, gtxBytes);\n }\n return gtxBytes;\n }\n catch (error) {\n if (typeof callback === \"function\") {\n callback(error, null);\n }\n // Todo the error should be replaced with the custom error MissingSignerException\n throw new Error(error);\n }\n });\n },\n sendTransactionWithRetries(transaction, callback, confirmationLevel = ChainConfirmationLevel.Dapp) {\n const client = this;\n function sendOnce() {\n return client.sendTransaction(transaction, true, callback, confirmationLevel);\n }\n const promiEvent = new Web3PromiEvent((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n let error = null;\n // await sleep(1000);\n for (let i = 0; i < config.retryTransactionPolling.count; i++) {\n logger.info(`sendTransactionWithRetries attempt ${i + 1} of ${config.retryTransactionPolling.count}`);\n const tmpPromiEvent = sendOnce()\n .on(TransactionEvent.ClusterAnchoringConfirmation, receipt => {\n promiEvent.emit(TransactionEvent.ClusterAnchoringConfirmation, receipt);\n })\n .on(TransactionEvent.SystemAnchoringConfirmation, receipt => {\n promiEvent.emit(TransactionEvent.SystemAnchoringConfirmation, receipt);\n })\n .on(TransactionEvent.DappReceived, receipt => {\n promiEvent.emit(TransactionEvent.DappReceived, receipt);\n })\n .on(TransactionEvent.Signed, receipt => {\n promiEvent.emit(TransactionEvent.Signed, receipt);\n })\n .on(TransactionEvent.DappConfirmed, receipt => {\n promiEvent.emit(TransactionEvent.DappConfirmed, receipt);\n })\n .catch(tmpError => {\n logger.warning(`sendTransactionWithRetries error on attempt ${i + 1} of ${config.retryTransactionPolling.count}: ${tmpError}`);\n promiEvent.emit(TransactionEvent.Rejected, tmpError);\n error = tmpError;\n });\n const tmpReceipt = yield tmpPromiEvent;\n if (tmpReceipt) {\n resolve(tmpReceipt);\n return;\n }\n yield sleep(config.retryTransactionPolling.interval);\n }\n reject(error);\n }));\n return promiEvent;\n },\n sendTransaction(transaction, doStatusPolling = true, callback, confirmationLevel = ChainConfirmationLevel.Dapp) {\n const promiEvent = new Web3PromiEvent((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n try {\n const gtx = getGTXFromBufferOrTransactionOrOperation(transaction, config.blockchainRid);\n if (gtx.signers.length !== ((_a = gtx.signatures) === null || _a === void 0 ? void 0 : _a.length)) {\n reject(new NumberOfSignersAndSignaturesException());\n }\n const gtxBytes = getSerializedGTX(gtx);\n const { error, statusCode, rspBody } = yield requestWithFailoverStrategy(Method.POST, `tx/${config.blockchainRid}`, config, gtxBytes);\n const transactionRid = gtxTool.getDigestToSign(gtx, config.merkleHashVersion);\n try {\n yield handlePostResponsePromisified(error, statusCode, isRawGtv(rspBody));\n if (typeof callback === \"function\") {\n callback(null, {\n status: ResponseStatus.Waiting,\n statusCode,\n transactionRid: transactionRid,\n node: (_b = config.nodeManager.lastUsedNode) === null || _b === void 0 ? void 0 : _b.url,\n });\n }\n }\n catch (_error) {\n if (typeof callback === \"function\") {\n callback(_error, null);\n }\n return reject(_error);\n }\n const client = this;\n const statusPollingConfig = {\n dappStatusPolling: client.config.dappStatusPolling,\n clusterAnchoringStatusPolling: client.config.clusterAnchoringStatusPolling,\n systemAnchoringStatusPolling: client.config.systemAnchoringStatusPolling,\n };\n const stickyNodeClient = yield createStickyNodeClient(client); //to avoid false rejections by oblivious nodes\n let transactionReceipt = yield handleDappConfirmations(transactionRid, doStatusPolling, confirmationLevel, promiEvent, statusPollingConfig.dappStatusPolling, () => stickyNodeClient.getTransactionStatus(transactionRid, callback), stickyNodeClient);\n if (confirmationLevel === ChainConfirmationLevel.None ||\n confirmationLevel === ChainConfirmationLevel.Dapp) {\n resolve(transactionReceipt);\n return;\n }\n const { anchoringClient, systemAnchoringChainBridString } = yield getAnchoringClientAndSystemChainRid(client);\n transactionReceipt = yield handleSystemConfirmations(transactionReceipt, confirmationLevel, promiEvent, statusPollingConfig, anchoringClient, systemAnchoringChainBridString, () => stickyNodeClient.getClusterAnchoringTransactionConfirmation(transactionRid, anchoringClient, callback), anchoredTxRid => stickyNodeClient.getSystemAnchoringTransactionConfirmation(anchoredTxRid, anchoringClient, systemAnchoringChainBridString, callback));\n resolve(transactionReceipt);\n }\n catch (error) {\n callback === null || callback === void 0 ? void 0 : callback(error, null);\n reject(error);\n }\n }));\n return promiEvent;\n },\n signAndSendUniqueTransaction(transactionOrOperation, signMethod, doStatusPolling = true, callback, confirmationLevel = ChainConfirmationLevel.Dapp) {\n isSignMethodValid(signMethod, { throwOnError: true });\n const promiEvent = new Web3PromiEvent((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const client = this;\n const transaction = \"name\" in transactionOrOperation\n ? {\n operations: [transactionOrOperation],\n signers: [signMethod.pubKey],\n }\n : transactionOrOperation;\n const hasNop = transaction.operations.some(operation => {\n return operation.name === \"nop\";\n });\n const transactionWithNop = hasNop ? transaction : client.addNop(transaction);\n try {\n const signedTx = yield client.signTransaction(transactionWithNop, signMethod);\n promiEvent.emit(TransactionEvent.Signed, signedTx);\n const sendTransactionPromiEvent = client.sendTransaction(signedTx, doStatusPolling, callback, confirmationLevel);\n linkPromiEvents(sendTransactionPromiEvent, promiEvent);\n resolve(yield sendTransactionPromiEvent);\n }\n catch (error) {\n reject(error);\n }\n }));\n return promiEvent;\n },\n getTransaction(transactionRid, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n isTxRidValid(transactionRid, { throwOnError: true });\n }\n catch (error) {\n callback === null || callback === void 0 ? void 0 : callback(error, null);\n throw error;\n }\n const { error, statusCode, rspBody } = yield requestWithFailoverStrategy(Method.GET, `tx/${config.blockchainRid}/${ensureString(transactionRid)}`, config);\n const transaction = isTransaction(rspBody);\n return new Promise((resolve, reject) => {\n handleGetResponse(error, statusCode, statusCode === 200 && transaction ? toBuffer(transaction.tx) : isRawGtv(rspBody), callbackPromiseBuilder(reject, resolve, callback));\n });\n });\n },\n getTransactionStatus(transactionRid, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n isTxRidValid(transactionRid, { throwOnError: true });\n }\n catch (error) {\n callback === null || callback === void 0 ? void 0 : callback(error, null);\n throw error;\n }\n const { error, statusCode, rspBody } = yield requestWithFailoverStrategy(Method.GET, `tx/${config.blockchainRid}/${transactionRid.toString(\"hex\")}/status`, config);\n return new Promise((resolve, reject) => {\n handleGetResponse(error, statusCode, isRawGtv(rspBody), callbackPromiseBuilder(reject, result => resolve(validateTransactionStatusReponse({\n statusCode,\n result,\n })), callback));\n });\n });\n },\n addNop(transaction) {\n const _transaction = cloneDeep(transaction);\n const noOperation = {\n name: \"nop\",\n args: [randomBytes(32)],\n };\n _transaction.operations = [..._transaction.operations, noOperation];\n return _transaction;\n },\n getTransactionsInfo() {\n return __awaiter(this, arguments, void 0, function* (limit = 25, beforeTime, callback, afterTime, signerPubKey) {\n const beforeTimeQueryParam = beforeTime ? `&before-time=${beforeTime.getTime()}` : \"\";\n const afterTimeQueryParam = afterTime ? `&after-time=${afterTime.getTime()}` : \"\";\n const signerQueryParam = signerPubKey ? `&signer=${signerPubKey}` : \"\";\n const { error, statusCode, rspBody } = yield requestWithFailoverStrategy(Method.GET, `transactions/${config.blockchainRid}?limit=${limit}${beforeTimeQueryParam}${afterTimeQueryParam}${signerQueryParam}`, config);\n const transactionsInfoResponseArray = isTransactionInfoResponseArray(rspBody);\n const body = statusCode === 200 && transactionsInfoResponseArray\n ? transactionsInfoResponseArray.map(formatTransactionInfoResponse)\n : rspBody;\n return new Promise((resolve, reject) => {\n handleGetResponse(error, statusCode, isRawGtv(body), callbackPromiseBuilder(reject, resolve, callback));\n });\n });\n },\n getTransactionInfo(transactionRid, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n isTxRidValid(transactionRid, { throwOnError: true });\n }\n catch (error) {\n callback === null || callback === void 0 ? void 0 : callback(error, null);\n throw error;\n }\n const { error, statusCode, rspBody } = yield requestWithFailoverStrategy(Method.GET, `transactions/${config.blockchainRid}/${ensureString(transactionRid)}`, config);\n const transactionInfoResponse = isTransactionInfoResponse(rspBody);\n const body = statusCode === 200 && transactionInfoResponse\n ? formatTransactionInfoResponse(transactionInfoResponse)\n : rspBody;\n return new Promise((resolve, reject) => {\n handleGetResponse(error, statusCode, isRawGtv(body), callbackPromiseBuilder(reject, resolve, callback));\n });\n });\n },\n getAnchoringStatusForBlockRid(blockRid, anchoringClient, systemAnchoringChainRid) {\n return __awaiter(this, void 0, void 0, function* () {\n const client = this;\n const result = { status: AnchoringStatus.NotAnchored };\n const clusterAnchoredTx = yield awaitGetAnchoringTransactionForBlockRid(anchoringClient, ensureBuffer(client.config.blockchainRid), ensureBuffer(blockRid), config.clusterAnchoringStatusPolling);\n if (!clusterAnchoredTx) {\n return result;\n }\n const anchoringTransactionValidation = AnchoringTransactionSchema.safeParse(clusterAnchoredTx);\n if (!anchoringTransactionValidation.success) {\n return result;\n }\n result.status = AnchoringStatus.ClusterAnchored;\n result.clusterAnchoredTx = anchoringTransactionValidation.data;\n const systemAnchoredTransaction = yield getSystemAnchoringTransaction(config.endpointPool, anchoringTransactionValidation.data.txRid, anchoringClient, systemAnchoringChainRid, config.systemAnchoringStatusPolling, config.merkleHashVersion);\n if (!systemAnchoredTransaction) {\n return result;\n }\n result.status = AnchoringStatus.SystemAnchored;\n result.systemAnchoredTx = systemAnchoredTransaction;\n return result;\n });\n },\n getTransactionConfirmationLevel(transactionRid, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n try {\n const client = this;\n const dappConfirmation = yield client.getTransactionStatus(transactionRid);\n const response = {\n status: dappConfirmation.status,\n statusCode: dappConfirmation.statusCode,\n transactionRid: ensureBuffer(transactionRid),\n node: (_a = client.config.nodeManager.lastUsedNode) === null || _a === void 0 ? void 0 : _a.url,\n };\n if (dappConfirmation.status === ResponseStatus.Waiting) {\n return response;\n }\n let clusterAnchoringResult = null;\n if (dappConfirmation.status === ResponseStatus.Confirmed) {\n const { anchoringClient, systemAnchoringChainBridString } = yield getAnchoringClientAndSystemChainRid(client);\n clusterAnchoringResult = yield client.getClusterAnchoringTransactionConfirmation(transactionRid, anchoringClient);\n if (clusterAnchoringResult === AnchoringStatus.NotAnchored || !clusterAnchoringResult) {\n return response;\n }\n if (clusterAnchoringResult === AnchoringStatus.FailedAnchoring) {\n response.status = AnchoringStatus.FailedAnchoring;\n response.statusCode = 400;\n return response;\n }\n const anchoringTransactionValidation = AnchoringTransactionSchema.safeParse(clusterAnchoringResult);\n if (!anchoringTransactionValidation.success) {\n return response;\n }\n if (anchoringTransactionValidation.success) {\n response.status = AnchoringStatus.ClusterAnchored;\n response.statusCode = 200;\n response.clusterAnchoredTx = anchoringTransactionValidation.data;\n response.clusterAnchoringClientBrid = anchoringClient.config.blockchainRid;\n const systemAnchoringResult = yield client.getSystemAnchoringTransactionConfirmation(anchoringTransactionValidation.data.txRid, anchoringClient, systemAnchoringChainBridString);\n if (!systemAnchoringResult) {\n return response;\n }\n response.status = AnchoringStatus.SystemAnchored;\n response.systemAnchoredTx = systemAnchoringResult;\n response.systemAnchoringClientBrid = systemAnchoringChainBridString;\n return response;\n }\n }\n return response;\n }\n catch (error) {\n callback === null || callback === void 0 ? void 0 : callback(error, null);\n throw error;\n }\n });\n },\n getTransactionCount(callback) {\n return __awaiter(this, void 0, void 0, function* () {\n const { error, statusCode, rspBody } = yield requestWithFailoverStrategy(Method.GET, `transactions/${config.blockchainRid}/count`, config, undefined, true);\n const transactionsCount = isTransactionsCount(rspBody);\n return new Promise((resolve, reject) => {\n handleGetResponse(error, statusCode, statusCode === 200 ? transactionsCount === null || transactionsCount === void 0 ? void 0 : transactionsCount.transactionsCount : isRawGtv(rspBody), callbackPromiseBuilder(reject, resolve, callback));\n });\n });\n },\n getBlockInfo(blockIdentifier_1) {\n return __awaiter(this, arguments, void 0, function* (blockIdentifier, txs = false, callback) {\n isBlockIdentifierValid(blockIdentifier, { throwOnError: true });\n const queryString = typeof blockIdentifier === \"string\" ? blockIdentifier : `height/${blockIdentifier}`;\n const { error, statusCode, rspBody } = yield requestWithFailoverStrategy(Method.GET, `blocks/${config.blockchainRid}/${queryString}?txs=${txs}`, config);\n const blockInfoResponse = isBlockInfoResponse(rspBody);\n return new Promise((resolve, reject) => {\n handleGetResponse(error, statusCode, statusCode === 200 && blockInfoResponse !== null && blockInfoResponse\n ? formatBlockInfoResponse(blockInfoResponse)\n : isRawGtv(rspBody), callbackPromiseBuilder(reject, resolve, callback));\n });\n });\n },\n getLatestBlock() {\n return __awaiter(this, arguments, void 0, function* (txs = false, callback) {\n const shouldIncludeFullTransaction = txs ? `&txs=${txs}` : \"\";\n const { error, statusCode, rspBody } = yield requestWithFailoverStrategy(Method.GET, `blocks/${config.blockchainRid}?limit=1${shouldIncludeFullTransaction}`, config, undefined, true);\n const indexOfLatestBlock = 0;\n const blockInfoResponseArray = isBlockInfoResponseArray(rspBody);\n return new Promise((resolve, reject) => {\n handleGetResponse(error, statusCode, statusCode === 200 && blockInfoResponseArray !== null && blockInfoResponseArray\n ? formatBlockInfoResponse(blockInfoResponseArray[indexOfLatestBlock])\n : isRawGtv(rspBody), callbackPromiseBuilder(reject, resolve, callback));\n });\n });\n },\n getBlocks() {\n return __awaiter(this, arguments, void 0, function* ({ limit, beforeTime, afterTime, beforeHeight, afterHeight, excludeEmpty, txs, callback, } = {}) {\n const searchValues = {\n limit,\n txs,\n \"before-time\": beforeTime,\n \"after-time\": afterTime,\n \"before-height\": beforeHeight,\n \"after-height\": afterHeight,\n \"exclude-empty\": excludeEmpty,\n };\n const searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(searchValues)) {\n if (value !== undefined) {\n searchParams.append(key, value.toString());\n }\n }\n const { error, statusCode, rspBody } = yield requestWithFailoverStrategy(Method.GET, `blocks/${config.blockchainRid}?${searchParams}`, config);\n const blockInfoResponseArray = isBlockInfoResponseArray(rspBody);\n return new Promise((resolve, reject) => {\n handleGetResponse(error, statusCode, statusCode === 200 && blockInfoResponseArray\n ? blockInfoResponseArray.map(formatBlockInfoResponse)\n : isRawGtv(rspBody), callbackPromiseBuilder(reject, resolve, callback));\n });\n });\n },\n getClientNodeUrlPool() {\n return config.endpointPool.map((endpoint) => endpoint.url);\n },\n /**\n * Retrieves a confirmation proof for a transaction with the specified sha256\n * hash.\n * @param txRid A buffer of 32 bytes\n * @param callback parameters (error, responseObjectProof) if first\n * parameter is not null, an error occurred.\n * If first parameter is null, then the second parameter is an object\n * like the following:\n *\n * {hash: messageHashBuffer,\n * blockHeader: blockHeaderBuffer,\n * signatures: [{pubKey: pubKeyBuffer, signature: sigBuffer}, ...],\n * merklePath: [{side: <0|1>, hash: <hash buffer level n-1>},\n * ...\n * {side: <0|1>, hash: <hash buffer level 1>}]}\n *\n * If no such transaction RID exists, the callback will be called with (null, null).\n *\n * The proof object can be validated using\n * postchain-common.util.validateMerklePath(proof.merklePath, proof.hash,\n * proof.blockHeader.slice(32, 64))\n *\n * The signatures must be validated agains some know trusted source for valid signers\n * at this specific block height.\n */\n getConfirmationProof(txRid, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n isTxRidValid(txRid, { throwOnError: true });\n }\n catch (error) {\n callback === null || callback === void 0 ? void 0 : callback(error, null);\n throw error;\n }\n const { error, statusCode, rspBody } = yield requestWithFailoverStrategy(Method.GET, `tx/${config.blockchainRid}/${ensureString(txRid)}/confirmationProof`, config);\n const confirmationProof = {\n merkleProofTree: \"\",\n txIndex: 0,\n };\n if (statusCode === 200) {\n try {\n const transactionConfirmationProof = isTransactionConfirmationProof(rspBody);\n if (!transactionConfirmationProof) {\n throw error;\n }\n const decodedProof = decodeValue(toBuffer(transactionConfirmationProof.proof));\n confirmationProof.txIndex = decodedProof.txIndex;\n confirmationProof.hash = decodedProof.hash;\n confirmationProof.blockHeader = decodedProof.blockHeader;\n confirmationProof.witness = decodedProof.witness;\n confirmationProof.merkleProofTree = decodedProof.merkleProofTree;\n }\n catch (decodeError) {\n if (callback) {\n callback(decodeError, null);\n }\n throw decodeError;\n }\n }\n return new Promise((resolve, reject) => {\n handleGetResponse(error, statusCode, statusCode === 200 ? confirmationProof : isRawGtv(rspBody), callbackPromiseBuilder(reject, resolve, callback));\n });\n });\n },\n getClusterAnchoringTransactionConfirmation(transactionRid, anchoringClient, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n isTxRidValid(transactionRid, { throwOnError: true });\n }\n catch (error) {\n callback === null || callback === void 0 ? void 0 : callback(error, null);\n throw error;\n }\n const client = this;\n try {\n let confirmationProof;\n try {\n confirmationProof = yield client.getConfirmationProof(transactionRid);\n }\n catch (error) {\n callback === null || callback === void 0 ? void 0 : callback(error, null);\n return AnchoringStatus.NotAnchored;\n }\n const anchoringTransaction = yield getBlockAnchoringTransaction(client, anchoringClient, transactionRid, confirmationProof);\n if (!anchoringTransaction)\n return AnchoringStatus.NotAnchored;\n return anchoringTransaction;\n }\n catch (error) {\n callback === null || callback === void 0 ? void 0 : callback(error, null);\n return AnchoringStatus.FailedAnchoring;\n }\n });\n },\n getSystemAnchoringTransactionConfirmation(anchoredTxRid, anchoringClient, systemAnchoringChainRid, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n isTxRidValid(anchoredTxRid, { throwOnError: true });\n }\n catch (error) {\n callback === null || callback === void 0 ? void 0 : callback(error, null);\n throw error;\n }\n const systemAnchoringTransactionTransaction = yield getSystemAnchoringTransaction(config.endpointPool, anchoredTxRid, anchoringClient, systemAnchoringChainRid, config.systemAnchoringStatusPolling, config.merkleHashVersion);\n return systemAnchoringTransactionTransaction;\n });\n },\n getWaitingTransactions(blockchainRid, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n const { error, statusCode, rspBody } = yield requestWithFailoverStrategy(Method.GET, `/tx/${ensureString(blockchainRid)}/waiting`, config);\n return new Promise((resolve, reject) => {\n handleGetResponse(error, statusCode, isRawGtv(rspBody), callbackPromiseBuilder(reject, resolve, callback));\n });\n });\n },\n getWaitingTransaction(blockchainRid, txRid, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n const { error, statusCode, rspBody, transactionTimestamp } = yield requestWithFailoverStrategy(Method.GET, `/tx/${ensureString(blockchainRid)}/waiting/${ensureString(txRid)}`, config);\n const transaction = isTransaction(rspBody);\n const result = transaction ? toBuffer(transaction.tx) : isRawGtv(rspBody);\n return new Promise((resolve, reject) => {\n handleGetResponse(error, statusCode, result, callbackPromiseBuilder(reject, txData => resolve({\n txData: isRawGtv(txData),\n transactionTimestamp: Number(transactionTimestamp),\n }), callback));\n });\n });\n },\n getRejectedTransactions(blockchainRid, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n const { error, statusCode, rspBody } = yield requestWithFailoverStrategy(Method.GET, `/tx/${ensureString(blockchainRid)}/rejected`, config);\n const rejectedTransactionsArray = isRejectedTransactionResponseArray(rspBody);\n const validResponseBody = statusCode === 200 && rejectedTransactionsArray\n ? rejectedTransactionsArray.map(rejectedTransaction => formatRejectedTransactionFromResponse(rejectedTransaction))\n : rspBody;\n return new Promise((resolve, reject) => {\n handleGetResponse(error, statusCode, isRawGtv(validResponseBody), callbackPromiseBuilder(reject, resolve, callback));\n });\n });\n },\n /**\n * Get app structure. Returns list of app modules in JSON format\n * @param callback - leverages error-first pattern and called when promise resolves\n */\n getAppStructure(callback) {\n return __awaiter(this, void 0, void 0, function* () {\n const { error, statusCode, rspBody } = yield requestWithFailoverStrategy(Method.GET, `/query/${config.blockchainRid}?type=rell.get_app_structure`, config);\n return new Promise((resolve, reject) => {\n handleGetResponse(error, statusCode, isRawGtv(rspBody), callbackPromiseBuilder(reject, resolve, callback));\n });\n });\n },\n };\n function getMerkleHashVersion(settings) {\n return __awaiter(this, void 0, void 0, function* () {\n let merkleHashVersion;\n if (settings.merkleHashVersion !== undefined) {\n merkleHashVersion = settings.merkleHashVersion;\n }\n else {\n merkleHashVersion = yield getMerkleHashVersionFromDapp(config);\n }\n return merkleHashVersion;\n });\n }\n function createStickyNodeClient(client) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n if (!client.config.nodeManager.lastUsedNode) {\n throw new Error(\"No last used node found; cannot create sticky node client\");\n }\n const stickyNodeClient = yield createClient({\n nodeUrlPool: (_a = client.config.nodeManager.lastUsedNode) === null || _a === void 0 ? void 0 : _a.url,\n blockchainRid: client.config.blockchainRid,\n merkleHashVersion: client.config.merkleHashVersion,\n useStickyNode: true,\n });\n return stickyNodeClient;\n });\n }\n });\n}\n//# sourceMappingURL=blockchainClient.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { FailoverStrategy } from \"./enums\";\nimport { Web3PromiEvent } from \"../promiEvent/promiEvents\";\nimport { createNodeManager } from \"./nodeManager\";\nimport { setRetryTransactionPolling, setStatusPolling } from \"./utils\";\nimport { MERKLE_HASH_VERSIONS } from \"../utils/constants\";\nexport function createStubClient() {\n return __awaiter(this, void 0, void 0, function* () {\n return {\n config: {\n merkleHashVersion: MERKLE_HASH_VERSIONS.ONE,\n nodeManager: createNodeManager({\n nodeUrls: [],\n }),\n endpointPool: [],\n blockchainRid: \"0000000000000000000000000000000000000000000000000000000000000000\",\n dappStatusPolling: setStatusPolling({ interval: 5000, count: 5 }),\n clusterAnchoringStatusPolling: setStatusPolling(),\n systemAnchoringStatusPolling: setStatusPolling(),\n retryTransactionPolling: setRetryTransactionPolling(),\n failoverStrategy: FailoverStrategy.AbortOnError,\n attemptsPerEndpoint: 3,\n attemptInterval: 5000,\n unreachableDuration: 30000,\n directoryChainRid: \"1111111111111111111111111111111111111111111111111111111111111111\",\n connectTimeout: 1000,\n responseTimeout: 1000,\n },\n query() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"query rejected\");\n });\n },\n signTransaction() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"signTransaction rejected\");\n });\n },\n sendTransaction() {\n return new Web3PromiEvent((_resolve, reject) => reject(\"sendTransaction rejected\"));\n },\n sendTransactionWithRetries() {\n return new Web3PromiEvent((_resolve, reject) => reject(\"sendTransactionWithRetries rejected\"));\n },\n signAndSendUniqueTransaction() {\n return new Web3PromiEvent((_resolve, reject) => reject(\"signAndSendUniqueTransaction rejected\"));\n },\n getTransaction() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getTransaction rejected\");\n });\n },\n getTransactionStatus() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getTransactionStatus rejected\");\n });\n },\n addNop() {\n throw new Error(\"addNop error\");\n },\n getTransactionsInfo() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getTransactionsInfo rejected\");\n });\n },\n getTransactionInfo() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getTransactionInfo rejected\");\n });\n },\n getAnchoringStatusForBlockRid() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getAnchoringStatusForBlockRid rejected\");\n });\n },\n getTransactionConfirmationLevel() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getTransactionConfirmationLevel rejected\");\n });\n },\n getTransactionCount() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getTransactionCount rejected\");\n });\n },\n getBlocks() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getBlockInfo rejected\");\n });\n },\n getBlockInfo() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getBlockInfo rejected\");\n });\n },\n getLatestBlock() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getLatestBlock rejected\");\n });\n },\n getClientNodeUrlPool() {\n return [];\n },\n getConfirmationProof() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getConfirmationProof rejected\");\n });\n },\n getClusterAnchoringTransactionConfirmation() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getClusterAnchoringTransactionConfirmation rejected\");\n });\n },\n getSystemAnchoringTransactionConfirmation() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getSystemAnchoringTransactionConfirmation rejected\");\n });\n },\n getAppStructure() {\n return Promise.reject(\"getAppStructure rejected\");\n },\n getWaitingTransactions() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getWaitingTransactions rejected\");\n });\n },\n getWaitingTransaction() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getWaitingTransaction rejected\");\n });\n },\n getRejectedTransactions() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getRejectedTransactions rejected\");\n });\n },\n };\n });\n}\n//# sourceMappingURL=clientStub.js.map","import { GetTransactionRidException } from \"../blockchainClient/errors\";\nimport { getDigestToSignFromRawGtxBody } from \"../gtx/gtx\";\n/**\n * Calculates and returns the transaction RID, i.e., the merkle root hash of the transaction.\n * @param transaction The transaction in format of RawGtxBody\n *\n */\nexport function calculateTransactionRid(transaction, merkleHashVersion) {\n try {\n return getDigestToSignFromRawGtxBody(transaction, merkleHashVersion);\n }\n catch (error) {\n throw new GetTransactionRidException(error);\n }\n}\n//# sourceMappingURL=calculateTransactionRid.js.map","import { Buffer } from \"buffer\";\nimport { formatter } from \"../..\";\nexport function dumpGtx(gtxTx) {\n var _a;\n return `blockchainRid:\\n${formatter.toString(gtxTx.blockchainRid)}\\n\noperations:\n${gtxTx.operations.map(op => ` - ${op.opName}(${op.args.map(dumpGtv).join(\", \")})\\n`).join(\"\")}\nsigners:\n${gtxTx.signers.map(s => ` - ${formatter.toString(s)}\\n`).join(\"\")}\nsignatures:\n${(_a = gtxTx.signatures) === null || _a === void 0 ? void 0 : _a.map(s => ` - ${formatter.toString(s)}\\n`).join(\"\")}`;\n}\nexport function dumpGtv(rawGtv) {\n return JSON.stringify(rawGtv, (_key, value) => {\n if (typeof value === \"bigint\") {\n return `${value.toString()}L`;\n }\n if (Buffer.isBuffer(value)) {\n return formatter.toString(value);\n }\n if (typeof value === \"object\" &&\n value !== null &&\n value.type === \"Buffer\" &&\n Array.isArray(value.data)) {\n return `0x${value.data}`;\n }\n return value;\n });\n}\n//# sourceMappingURL=dump.js.map","import * as gtxTool from \"../gtx/gtx\";\nimport * as logger from \"../logger\";\nimport { dumpGtv } from \"./dump\";\n/**\n * Decodes the transaction using ASN.1.\n * @returns the transaction decoded in GTX format\n */\nexport function decodeTransactionToGtx(encodedTransaction) {\n const gtx = gtxTool.deserialize(encodedTransaction);\n logger.debug(`Output from deserializing a raw transaction: ${dumpGtv(gtx)}`);\n return gtx;\n}\n//# sourceMappingURL=decodeTransactionToGtx.js.map"],"names":["z","Buffer","buffer","BN","gtvHash","encode","serialization.encodeValue","decode","serialization.decodeValue","secp256k1","crypto","sign","serialization.encodeValueGtx","serialization.decodeValueGtx","__awaiter","this","gtv.gtvHash","gtxEncode","gtxDecode","_a","FailoverStrategy","ResponseStatus","TransactionEvent","AnchoringStatus","ChainConfirmationLevel","logger.debug","logger.info","error","logger.error","logger.warning","gtxTool.deserialize","EventEmitter","gtx","gtxTool.sign","gtxTool.getDigestToSign","randomBytes","formatter.toString"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/gtv/definition.js","../src/customError/index.js","../src/gtx/errors.js","../src/blockchainClient/validation/rawGtx.js","../src/utils/bufferUtils.js","../src/formatter.js","../src/gtx/serialization.js","../src/utils/constants.js","../src/gtv/index.js","../src/encryption/errors.js","../src/encryption/encryption.js","../src/gtx/index.js","../src/gtx/gtx.js","../src/logger.js","../src/blockchainClient/errors.js","../src/blockchainClient/enums.js","../src/blockchainClient/nodeManager.js","../src/blockchainClient/validation/bufferSchema.js","../src/blockchainClient/validation/txRid.js","../src/blockchainClient/validation/anchoringTransaction.js","../src/ICCF/error.js","../src/blockchainClient/validation/requests.js","../src/utils/encodeTransaction.js","../src/blockchainClient/validation/merkleHash.js","../src/blockchainClient/httpUtil.js","../src/utils/http-utils.js","../src/blockchainClient/failoverStrategies.js","../src/blockchainClient/requestWithFailoverStrategy.js","../src/blockchainClient/utils.js","../src/ICCF/utils.js","../src/ICCF/IccfProofTxMaterialBuilder.js","../src/promiEvent/promiEventEmitter.js","../src/promiEvent/promiEvents.js","../src/blockchainClient/validation/blockIdentifier.js","../src/blockchainClient/validation/networkSettings.js","../src/blockchainClient/validation/signMethod.js","../src/blockchainClient/validation/transactionStatusReponse.js","../src/blockchainClient/blockchainClient.js","../src/blockchainClient/clientStub.js","../src/utils/calculateTransactionRid.js","../src/utils/dump.js","../src/utils/decodeTransactionToGtx.js","../index.js","../index.js?commonjs-entry"],"sourcesContent":["\"use strict\";\n/* eslint-disable @typescript-eslint/ban-ts-comment */\n// @ts-nocheck\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ASNBuffer = exports.rawGTV = exports.ASNDictPair = void 0;\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst asn = require(\"@chromia/asn1/lib/asn1\");\nexports.ASNDictPair = asn.define(\"DictPair\", function () {\n this.seq().obj(this.key(\"name\").utf8str(), this.key(\"value\").use(exports.rawGTV));\n});\nexports.rawGTV = asn.define(\"GtvValue\", function () {\n this.choice({\n null: this.explicit(0).null_(),\n byteArray: this.explicit(1).octstr(),\n string: this.explicit(2).utf8str(),\n integer: this.explicit(3).int(),\n dict: this.explicit(4).seqof(exports.ASNDictPair),\n array: this.explicit(5).seqof(exports.rawGTV),\n bigInteger: this.explicit(6).int(),\n });\n});\nexports.ASNBuffer = asn.define(\"Buffer\", function () {\n this.octstr();\n});\n//# sourceMappingURL=definition.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomError = void 0;\nclass CustomError extends Error {\n constructor(message, status) {\n super(message);\n this.name = this.constructor.name;\n this.status = status;\n }\n}\nexports.CustomError = CustomError;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MissingSignerException = exports.NumberOfSignersAndSignaturesException = exports.AlreadySignedTransactionException = exports.MissingGtxException = exports.UnexpectedArgumentTypeError = void 0;\nconst customError_1 = require(\"../customError\");\nclass UnexpectedArgumentTypeError extends customError_1.CustomError {\n constructor(typedArg) {\n super(`Cannot parse typedArg ${JSON.stringify(typedArg)}. Unknown type ${typedArg.type}`, 400);\n }\n}\nexports.UnexpectedArgumentTypeError = UnexpectedArgumentTypeError;\nclass MissingGtxException extends customError_1.CustomError {\n constructor() {\n super(`Missing instance of gtx protocol (used for communicating with postchain) to add operation to`, 400);\n }\n}\nexports.MissingGtxException = MissingGtxException;\nclass AlreadySignedTransactionException extends customError_1.CustomError {\n constructor(operation) {\n super(`Cannot add ${operation} calls to an already signed gtx`, 400);\n }\n}\nexports.AlreadySignedTransactionException = AlreadySignedTransactionException;\nclass NumberOfSignersAndSignaturesException extends customError_1.CustomError {\n constructor() {\n super(`Not matching number of signers and signatures`, 400);\n }\n}\nexports.NumberOfSignersAndSignaturesException = NumberOfSignersAndSignaturesException;\nclass MissingSignerException extends customError_1.CustomError {\n constructor() {\n super(`No such signer, remember to add signer to transaction before adding a signature`, 400);\n }\n}\nexports.MissingSignerException = MissingSignerException;\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isRawGtx = isRawGtx;\nconst buffer_1 = require(\"buffer\");\nconst zod_1 = require(\"zod\");\nconst bufferSchema = zod_1.z.custom(val => buffer_1.Buffer.isBuffer(val), {\n message: \"Expected Buffer\",\n});\nconst rawGtvSchema = zod_1.z.lazy(() => zod_1.z.union([\n zod_1.z.null(),\n zod_1.z.boolean(),\n bufferSchema,\n zod_1.z.string(),\n zod_1.z.number(),\n zod_1.z.bigint(),\n zod_1.z.array(rawGtvSchema),\n zod_1.z.record(rawGtvSchema),\n]));\nconst rawGtxOpSchema = zod_1.z.tuple([zod_1.z.string(), zod_1.z.array(rawGtvSchema)]);\nconst rawGtxBodySchema = zod_1.z.tuple([bufferSchema, zod_1.z.array(rawGtxOpSchema), zod_1.z.array(bufferSchema)]);\nconst rawGtxSchema = zod_1.z.tuple([rawGtxBodySchema, zod_1.z.array(bufferSchema)]);\nfunction isRawGtx(value) {\n const result = rawGtxSchema.safeParse(value);\n return result.success;\n}\n//# sourceMappingURL=rawGtx.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBuffer = isBuffer;\nconst buffer_1 = require(\"buffer\");\n/**\n * Type guard to check if a value is a Buffer instance.\n * Works correctly with Buffer imported from the 'buffer' package.\n */\nfunction isBuffer(value) {\n return buffer_1.Buffer.isBuffer(value);\n}\n//# sourceMappingURL=bufferUtils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PgBytesInputException = void 0;\nexports.pgBytes = pgBytes;\nexports.toBuffer = toBuffer;\nexports.toString = toString;\nexports.toQueryObjectGTV = toQueryObjectGTV;\nexports.ensureBuffer = ensureBuffer;\nexports.ensureString = ensureString;\nexports.checkGtvType = checkGtvType;\nexports.rawGtxToGtx = rawGtxToGtx;\nexports.rawGtxToRawGtxBody = rawGtxToRawGtxBody;\nexports.checkGtxType = checkGtxType;\nexports.removeDuplicateSigners = removeDuplicateSigners;\nexports.matchRellErrorString = matchRellErrorString;\nconst buffer_1 = require(\"buffer\");\nconst rawGtx_1 = require(\"./blockchainClient/validation/rawGtx\");\nconst bufferUtils_1 = require(\"./utils/bufferUtils\");\nfunction pgBytes(buffer) {\n if (!buffer_1.Buffer.isBuffer(buffer)) {\n throw new PgBytesInputException(buffer);\n }\n return `\\\\x${buffer.toString(\"hex\")}`;\n}\n/**\n * Converts hex string to Buffer\n * @param key: string\n * @returns {Buffer}\n */\nfunction toBuffer(key) {\n return buffer_1.Buffer.from(key, \"hex\");\n}\n/**\n * Converts Buffer to hex string\n * @param buffer: Buffer\n * @returns {string}\n */\nfunction toString(buffer) {\n return buffer.toString(\"hex\").toUpperCase();\n}\nfunction toQueryObjectGTV(nameOrObject, queryArguments) {\n if (typeof nameOrObject === \"string\") {\n return [nameOrObject, Object.assign({}, queryArguments)];\n }\n else {\n const { name, args } = nameOrObject;\n return [name, args || {}];\n }\n}\nclass PgBytesInputException extends Error {\n constructor(buffer) {\n super(`util.pgBytes expects a buffer, but got ${typeof buffer}`);\n }\n}\nexports.PgBytesInputException = PgBytesInputException;\nfunction ensureBuffer(value) {\n if ((0, bufferUtils_1.isBuffer)(value)) {\n return value;\n }\n return toBuffer(value);\n}\nfunction ensureString(value) {\n if (typeof value === \"string\") {\n return value.toUpperCase();\n }\n else {\n return toString(value);\n }\n}\nfunction checkGtvType(value) {\n try {\n if (value == null) {\n return true;\n }\n if (buffer_1.Buffer.isBuffer(value)) {\n return true;\n }\n if (typeof value === \"string\" || typeof value === \"bigint\") {\n return true;\n }\n if (typeof value === \"number\") {\n if (!Number.isInteger(value)) {\n throw Error(\"User error: Only integers are supported\");\n }\n return true;\n }\n if (Array.isArray(value)) {\n return value.every(item => checkGtvType(item));\n }\n if (typeof value === \"object\") {\n return Object.values(value).every(val => checkGtvType(val));\n }\n }\n catch (error) {\n throw new Error(`Failed to check type: ${error}`);\n }\n return false;\n}\nfunction rawGtxToGtx(rawGtx) {\n const rawGtxBody = rawGtx[0];\n const signatures = rawGtx[1];\n const gtxBody = {\n blockchainRid: rawGtxBody[0],\n operations: rawGtxBody[1].map((operation) => ({\n opName: operation[0],\n args: operation[1],\n })),\n signers: rawGtxBody[2],\n };\n return {\n blockchainRid: gtxBody.blockchainRid,\n operations: gtxBody.operations,\n signers: gtxBody.signers,\n signatures,\n };\n}\nfunction rawGtxToRawGtxBody(rawGtx) {\n return rawGtx[0];\n}\nfunction checkGtxType(value) {\n if (!(0, rawGtx_1.isRawGtx)(value))\n return false;\n try {\n rawGtxToGtx(value);\n return true;\n }\n catch (error) {\n return false;\n }\n}\nfunction removeDuplicateSigners(signers) {\n const signersAsString = [];\n signers.forEach(item => {\n const itemAsString = item.toString(\"hex\");\n if (!signersAsString.includes(itemAsString)) {\n signersAsString.push(itemAsString);\n }\n });\n const result = [];\n signersAsString.forEach(item => {\n result.push(buffer_1.Buffer.from(item, \"hex\"));\n });\n return result;\n}\nfunction matchRellErrorString(rellError) {\n const parsed = rellError.match(/\\[([^\\]]+)\\]\\sOperation\\s'([^']+)'\\sfailed:\\s(.+)$/);\n if (!parsed)\n return {};\n const [rellLine, operation, shortReason] = parsed.slice(1);\n return { shortReason, rellLine, operation };\n}\n//# sourceMappingURL=formatter.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeValue = encodeValue;\nexports.encodeValueGtx = encodeValueGtx;\nexports.decodeValue = decodeValue;\nexports.decodeValueGtx = decodeValueGtx;\nexports.parseValue = parseValue;\nexports.createTypedArg = createTypedArg;\nconst buffer_1 = require(\"buffer\");\nconst definition_1 = require(\"../gtv/definition\");\nconst bn_js_1 = require(\"bn.js\");\nconst errors_1 = require(\"./errors\");\nconst formatter_1 = require(\"../formatter\");\nfunction encodeValue(rawGtv) {\n return definition_1.rawGTV.encode(createTypedArg(rawGtv));\n}\nfunction encodeValueGtx(rawGtx) {\n return encodeValue(rawGtx);\n}\nfunction decodeValue(bytes) {\n try {\n const obj = definition_1.rawGTV.decode(bytes);\n return parseValue(obj);\n }\n catch (error) {\n throw new Error(`Invalid GTV data. ${error}`);\n }\n}\nfunction decodeValueGtx(bytes) {\n const decodedValue = decodeValue(bytes);\n if (!(0, formatter_1.checkGtxType)(decodedValue)) {\n throw new Error(`Unexpected type of value: ${decodedValue}, expected decoded value to be of type RawGtx`);\n }\n return decodedValue;\n}\nfunction parseValue(typedArg) {\n var _a, _b;\n if (typedArg.type === \"null\") {\n return null;\n }\n else if (typedArg.type === \"byteArray\") {\n return typedArg.value;\n }\n else if (typedArg.type === \"string\") {\n return typedArg.value;\n }\n else if (typedArg.type === \"integer\") {\n return Number(typedArg.value);\n }\n else if (typedArg.type === \"array\") {\n const arrayValue = typedArg.value;\n return arrayValue.map((item) => parseValue(item));\n }\n else if (typedArg.type === \"bigInteger\") {\n return BigInt((_b = (_a = typedArg.value) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : \"\");\n }\n else if (typedArg.type === \"dict\") {\n const arrayValue = typedArg.value;\n const result = {};\n arrayValue.forEach((pair) => {\n result[pair.name] = parseValue(pair.value);\n });\n return result;\n }\n else {\n throw new errors_1.UnexpectedArgumentTypeError(typedArg);\n }\n}\nfunction createTypedArg(value) {\n try {\n if (value == null) {\n return { type: \"null\", value: null };\n }\n if (buffer_1.Buffer.isBuffer(value)) {\n return { type: \"byteArray\", value: value };\n }\n if (typeof value === \"boolean\") {\n return { type: \"integer\", value: value ? 1 : 0 };\n }\n if (typeof value === \"string\") {\n return { type: \"string\", value: value };\n }\n if (typeof value === \"number\") {\n if (!Number.isInteger(value)) {\n throw Error(\"User error: Only integers are supported\");\n }\n return { type: \"integer\", value: new bn_js_1.BN(value) };\n }\n if (typeof value === \"bigint\") {\n return { type: \"bigInteger\", value: new bn_js_1.BN(value.toString()) };\n }\n if (value.constructor === Array) {\n return {\n type: \"array\",\n value: value.map(item => createTypedArg(item)),\n };\n }\n if (typeof value === \"object\") {\n let valueAsDictPair = value;\n if (isDictPairWithStringKey(valueAsDictPair)) {\n valueAsDictPair = sortDictPairByKey(valueAsDictPair);\n }\n return {\n type: \"dict\",\n value: Object.keys(valueAsDictPair).map(function (key) {\n return { name: key, value: createTypedArg(valueAsDictPair[key]) };\n }),\n };\n }\n }\n catch (error) {\n const message = value ? value.toString() : \"RawGtv\";\n throw new Error(`Failed to encode ${message}: ${error}`);\n }\n throw new Error(`value ${value} have unsupported type: ${typeof value}`);\n}\nfunction isDictPairWithStringKey(obj) {\n for (const key in obj) {\n if (typeof key !== \"string\") {\n return false;\n }\n }\n return true;\n}\nfunction sortDictPairByKey(dict) {\n const sortedArray = Object.entries(dict).sort(([keyA], [keyB]) => {\n if (keyA < keyB) {\n return -1;\n }\n if (keyA > keyB) {\n return 1;\n }\n return 0;\n });\n const sortedDict = {};\n for (const [key, value] of sortedArray) {\n sortedDict[key] = value;\n }\n return sortedDict;\n}\n//# sourceMappingURL=serialization.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MERKLE_HASH_VERSIONS = void 0;\nexports.MERKLE_HASH_VERSIONS = {\n ONE: 1,\n TWO: 2,\n UNSET: NaN,\n};\n//# sourceMappingURL=constants.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.gtvHash = exports.decode = exports.encode = void 0;\nconst merklehashts_1 = require(\"merklehashts\");\nconst serialization = __importStar(require(\"../gtx/serialization\"));\nconst constants_1 = require(\"../utils/constants\");\nconst gtvHash2 = (obj, merkleHashVersion) => {\n if (!Object.values(constants_1.MERKLE_HASH_VERSIONS).includes(merkleHashVersion)) {\n throw new Error(\"Merkle hash version is not valid\");\n }\n if (isNaN(merkleHashVersion)) {\n throw new Error(\"Merkle hash version is not set\");\n }\n return (0, merklehashts_1.gtvHash)(obj, merkleHashVersion);\n};\nexports.gtvHash = gtvHash2;\nconst encode = serialization.encodeValue;\nexports.encode = encode;\nconst decode = serialization.decodeValue;\nexports.decode = decode;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MissingPrivKeyArgumentException = exports.PrivKeyFormatException = void 0;\nclass PrivKeyFormatException extends Error {\n constructor(privKey) {\n super(`Invalid key length. Expected 32, but got ${privKey.length}`);\n }\n}\nexports.PrivKeyFormatException = PrivKeyFormatException;\nclass MissingPrivKeyArgumentException extends Error {\n constructor() {\n super(`Missing argument privKey`);\n }\n}\nexports.MissingPrivKeyArgumentException = MissingPrivKeyArgumentException;\n//# sourceMappingURL=errors.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hash256 = void 0;\nexports.createPublicKey = createPublicKey;\nexports.randomBytes = randomBytes;\nexports.sha256 = sha256;\nexports.hashConcat = hashConcat;\nexports.checkSignature = checkSignature;\nexports.checkDigestSignature = checkDigestSignature;\nexports.sign = sign;\nexports.signDigest = signDigest;\nexports.makeKeyPair = makeKeyPair;\nexports.makeTuid = makeTuid;\nexports.verifyKeyPair = verifyKeyPair;\nconst buffer_1 = require(\"buffer\");\nconst crypto = __importStar(require(\"crypto\"));\nconst secp256k1 = __importStar(require(\"secp256k1\"));\nconst formatter_1 = require(\"../formatter\");\nconst errors_1 = require(\"./errors\");\nfunction createPublicKey(privKey) {\n validatePrivKeyFormat(privKey);\n return buffer_1.Buffer.from(secp256k1.publicKeyCreate(privKey, true).buffer);\n}\nfunction randomBytes(size) {\n return crypto.randomBytes(size);\n}\nfunction sha256(buffer) {\n return crypto.createHash(\"sha256\").update(buffer).digest();\n}\nexports.hash256 = sha256;\nfunction hashConcat(items) {\n return (0, exports.hash256)(buffer_1.Buffer.concat(items));\n}\n/**\n * @param content the content that the signature signs. It will be digested before validating.\n * @param pubKey The pubKey to validate the signature with\n * @param signature the signature to validate\n *\n * @return true if signature ok, false otherwise\n */\nfunction checkSignature(content, pubKey, signature) {\n const digest = (0, exports.hash256)(content);\n return checkDigestSignature(digest, pubKey, signature);\n}\n/**\n * @param digest the signed digest. It will not be digested before validating.\n * @param pubKey The pubKey to validate the signature with\n * @param signature the signature to validate\n *\n * @return true if signature ok, false otherwise\n */\nfunction checkDigestSignature(digest, pubKey, signature) {\n return secp256k1.ecdsaVerify(signature, digest, pubKey);\n}\n/**\n * @param content to sign. It will be digested before signing.\n * @param privKey The private key to sign the content with\n *\n * @return the signature\n */\nfunction sign(content, privKey) {\n validatePrivKeyFormat(privKey);\n const digestBuffer = sha256(content);\n return signDigest(digestBuffer, privKey);\n}\n/**\n * @param digestBuffer to sign. It will not be digested before signing.\n * @param privKey The private key to sign the digest with\n *\n * @return the signature\n */\nfunction signDigest(digestBuffer, privKey) {\n return buffer_1.Buffer.from(secp256k1.ecdsaSign(digestBuffer, privKey).signature);\n}\n/**\n * Creates a key pair (which usually represents one user)\n * @param privKey to create key pair based on\n * @returns {{pubKey: Buffer, privKey: Buffer}}\n */\nfunction makeKeyPair(privKey) {\n let pubKey;\n if (privKey) {\n privKey = (0, formatter_1.ensureBuffer)(privKey);\n pubKey = createPublicKey(privKey);\n }\n else {\n do {\n privKey = randomBytes(32);\n } while (!secp256k1.privateKeyVerify(privKey));\n pubKey = buffer_1.Buffer.from(secp256k1.publicKeyCreate(privKey).buffer);\n }\n return { pubKey, privKey };\n}\n/**\n * Generates a 16bytes TUID (Text unique ID) (a 32characters long string)\n * @returns string\n */\nfunction makeTuid() {\n return randomBytes(16).toString(\"hex\");\n}\n/**\n * Verify that keypair is correct. Providing the private key, this function returns its associated public key\n * @param privKey: Buffer\n * @returns {{pubKey: Buffer, privKey: Buffer}}\n */\nfunction verifyKeyPair(privKey) {\n validatePrivKeyFormat(privKey);\n const pubKey = buffer_1.Buffer.from(secp256k1.publicKeyCreate(privKey).buffer);\n return { pubKey, privKey };\n}\nfunction validatePrivKeyFormat(privKey) {\n if (!privKey) {\n throw new errors_1.MissingPrivKeyArgumentException();\n }\n if (!buffer_1.Buffer.isBuffer(privKey) || privKey.length !== 32) {\n throw new errors_1.PrivKeyFormatException(privKey);\n }\n}\n//# sourceMappingURL=encryption.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decode = exports.encode = void 0;\nconst serialization = __importStar(require(\"./serialization\"));\nconst encode = serialization.encodeValueGtx;\nexports.encode = encode;\nconst decode = serialization.decodeValueGtx;\nexports.decode = decode;\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.emptyGtx = emptyGtx;\nexports.addTransactionToGtx = addTransactionToGtx;\nexports.addSignerToGtx = addSignerToGtx;\nexports.getDigest = getDigest;\nexports.getDigestToSign = getDigestToSign;\nexports.getDigestToSignFromRawGtxBody = getDigestToSignFromRawGtxBody;\nexports.gtxToRawGtxBody = gtxToRawGtxBody;\nexports.gtxToRawGtx = gtxToRawGtx;\nexports.sign = sign;\nexports.addSignature = addSignature;\nexports.serialize = serialize;\nexports.deserialize = deserialize;\nexports.checkGTXSignatures = checkGTXSignatures;\nexports.checkExistingGTXSignatures = checkExistingGTXSignatures;\nexports.newSignatureProvider = newSignatureProvider;\nexports.rawGtvToGtx = rawGtvToGtx;\nconst buffer_1 = require(\"buffer\");\nconst gtv = __importStar(require(\"../gtv\"));\nconst encryption_1 = require(\"../encryption/encryption\");\nconst errors_1 = require(\"./errors\");\nconst index_1 = require(\"./index\");\nconst formatter_1 = require(\"../formatter\");\nconst bufferUtils_1 = require(\"../utils/bufferUtils\");\nfunction emptyGtx(blockchainRid) {\n return { blockchainRid, operations: [], signers: [] };\n}\n/**\n * Adds a function call to a GTX. Creates a new GTX if none specified.\n * This function will throw Error if gtx is already signed\n * @param opName the name of the function to call\n * @param args the array of arguments of the function call. If no args, this must be an empty array\n * @param gtx the function call will be added to this gtx\n * @returns the gtx\n * @throws if gtx is null or if gtx is already signed\n */\nfunction addTransactionToGtx(opName, args, gtx) {\n if (gtx == null) {\n throw new errors_1.MissingGtxException();\n }\n if (gtx.signatures) {\n throw new errors_1.AlreadySignedTransactionException(\"function\");\n }\n gtx.operations.push({ opName: opName, args: args });\n return gtx;\n}\nfunction addSignerToGtx(signer, gtx) {\n if (gtx.signatures) {\n throw new errors_1.AlreadySignedTransactionException(\"signer\");\n }\n gtx.signers.push(signer);\n}\n/**\n * Serializes the gtx to get tx hash\n * @param gtx the gtx to serialize\n */\nfunction getDigest(gtx, merkleHashVersion) {\n return gtv.gtvHash(gtxToRawGtxBody(gtx), merkleHashVersion);\n}\n/**\n * Serializes the gtx for signing\n * @param gtx the gtx to serialize\n */\nfunction getDigestToSign(gtx, merkleHashVersion) {\n return gtv.gtvHash(gtxToRawGtxBody(gtx), merkleHashVersion);\n}\nfunction getDigestToSignFromRawGtxBody(gtxBody, merkleHashVersion) {\n return gtv.gtvHash(gtxBody, merkleHashVersion);\n}\nfunction gtxToRawGtxBody(gtx) {\n return [\n gtx.blockchainRid,\n gtx.operations.map((op) => [op.opName, op.args]),\n gtx.signers,\n ];\n}\nfunction gtxToRawGtx(gtx) {\n var _a;\n return [\n [\n gtx.blockchainRid,\n gtx.operations.map((op) => [op.opName, op.args]),\n gtx.signers,\n ],\n (_a = gtx.signatures) !== null && _a !== void 0 ? _a : [],\n ];\n}\nfunction sign(gtx, privOrSigProv, merkleHashVersion, pubKey) {\n return __awaiter(this, void 0, void 0, function* () {\n if ((0, bufferUtils_1.isBuffer)(privOrSigProv)) {\n const digestToSign = getDigestToSign(gtx, merkleHashVersion);\n const signature = (0, encryption_1.signDigest)(digestToSign, privOrSigProv);\n return addSignature(pubKey || (0, encryption_1.makeKeyPair)(privOrSigProv).pubKey, signature, gtx);\n }\n else {\n // Removes signatures and extract the rawgtxBody\n const rawGtxBody = gtxToRawGtxBody(gtx);\n const signature = yield privOrSigProv.sign(rawGtxBody, merkleHashVersion);\n return addSignature(privOrSigProv.pubKey, signature, gtx);\n }\n });\n}\n/**\n * Adds a signature to the gtx\n */\nfunction addSignature(pubKeyBuffer, signatureBuffer, gtx) {\n if (!gtx.signatures) {\n gtx.signatures = Array(gtx.signers.length);\n }\n const signerIndex = gtx.signers.findIndex((signer) => pubKeyBuffer.equals(signer));\n if (signerIndex === -1) {\n throw new errors_1.MissingSignerException();\n }\n gtx.signatures[signerIndex] = signatureBuffer;\n return gtx;\n}\nfunction serialize(gtx) {\n if (!gtx.signatures) {\n // TODO\n // The gtx is not signed, but we must include\n // the signatures attribute, so let's add that.\n gtx.signatures = [];\n }\n return (0, index_1.encode)([gtxToRawGtxBody(gtx), gtx.signatures]);\n}\nfunction deserialize(gtxBytes) {\n const deserializedTx = (0, index_1.decode)(gtxBytes);\n const body = deserializedTx[0];\n const gtvTxBody = {\n blockchainRid: body[0],\n operations: body[1].map((operation) => ({\n opName: operation[0],\n args: operation[1],\n })),\n signers: body[2],\n };\n const signatures = deserializedTx[1];\n return {\n blockchainRid: gtvTxBody.blockchainRid,\n operations: gtvTxBody.operations,\n signers: gtvTxBody.signers,\n signatures,\n };\n}\nfunction checkGTXSignatures(txHash, gtx) {\n var _a;\n if (!Array.isArray(gtx.signatures) || gtx.signatures.length === 0) {\n return false;\n }\n for (const i in gtx.signers) {\n const signValid = (0, encryption_1.checkDigestSignature)(txHash, gtx.signers[i], (_a = gtx.signatures) === null || _a === void 0 ? void 0 : _a[i]);\n if (!signValid)\n return signValid;\n }\n return true;\n}\nfunction checkExistingGTXSignatures(txHash, gtx) {\n var _a;\n for (const i in gtx.signers) {\n if ((_a = gtx.signatures) === null || _a === void 0 ? void 0 : _a[i]) {\n const signValid = (0, encryption_1.checkDigestSignature)(txHash, gtx.signers[i], gtx.signatures[i]);\n if (!signValid)\n return signValid;\n }\n }\n return true;\n}\nfunction newSignatureProvider(keyPair) {\n let pub, priv;\n if (keyPair) {\n priv = (0, formatter_1.ensureBuffer)(keyPair.privKey);\n pub = keyPair.pubKey ? (0, formatter_1.ensureBuffer)(keyPair.pubKey) : (0, encryption_1.createPublicKey)(priv);\n }\n else {\n ({ privKey: priv, pubKey: pub } = (0, encryption_1.makeKeyPair)());\n }\n return {\n pubKey: pub,\n sign: (gtx, merkleHashVersion) => __awaiter(this, void 0, void 0, function* () {\n const signature = getDigestToSignFromRawGtxBody(gtx, merkleHashVersion);\n return (0, encryption_1.signDigest)(signature, priv);\n }),\n };\n}\nfunction rawGtvToGtx(gtv) {\n if (Array.isArray(gtv) && gtv.length !== 2) {\n throw new Error(\"Gtv must be an array of size 2\");\n }\n const gtvArray = gtv;\n if (!Array.isArray(gtvArray[0])) {\n throw new Error(\"First element must be an array\");\n }\n if (!Array.isArray(gtvArray[1])) {\n throw new Error(\"Second element must be an array\");\n }\n gtvArray[1].forEach(element => {\n if (!buffer_1.Buffer.isBuffer(element)) {\n throw new Error(\"Element must be a buffer\");\n }\n });\n const gtxBody = rawGtvToGtxBody(gtvArray[0]);\n return Object.assign(Object.assign({}, gtxBody), { signatures: gtvArray[1] });\n}\nfunction rawGtvToGtxBody(gtv) {\n if (Array.isArray(gtv) && gtv.length !== 3) {\n throw new Error(\"Gtv must be an array of size 3\");\n }\n const array = gtv;\n if (!buffer_1.Buffer.isBuffer(array[0])) {\n throw new Error(\"First element must be a byte array\");\n }\n if (!Array.isArray(array[1])) {\n throw new Error(\"Second element must be an array\");\n }\n if (!Array.isArray(array[2])) {\n throw new Error(\"Third element must be an array\");\n }\n array[2].forEach(element => {\n if (!buffer_1.Buffer.isBuffer(element)) {\n throw new Error(\"Element must be a buffer\");\n }\n });\n return {\n blockchainRid: array[0],\n operations: array[1].map(element => rawGtvToRellOp(element)),\n signers: array[2],\n };\n}\nfunction rawGtvToRellOp(gtv) {\n if (Array.isArray(gtv) && gtv.length !== 2) {\n throw new Error(\"Gtv must be an array of size 2\");\n }\n const array = gtv;\n if (typeof array[0] !== \"string\") {\n throw new Error(\"First element must be a string\");\n }\n if (!Array.isArray(array[1])) {\n throw new Error(\"Second element must be an array\");\n }\n return { opName: array[0], args: array[1] };\n}\n//# sourceMappingURL=gtx.js.map","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LogLevel = void 0;\nexports.setLogLevel = setLogLevel;\nexports.getLogLevel = getLogLevel;\nexports.debug = debug;\nexports.info = info;\nexports.error = error;\nexports.warning = warning;\nexports.logger = logger;\nvar MsgType;\n(function (MsgType) {\n MsgType[\"Debug\"] = \"DEBUG\";\n MsgType[\"Info\"] = \"INFO\";\n MsgType[\"Error\"] = \"ERROR\";\n MsgType[\"Warning\"] = \"WARNING\";\n})(MsgType || (MsgType = {}));\nvar LogColor;\n(function (LogColor) {\n LogColor[\"Red\"] = \"\\u001B[91m\";\n LogColor[\"Green\"] = \"\\u001B[92m\";\n LogColor[\"Blue\"] = \"\\u001B[36m\";\n LogColor[\"Yellow\"] = \"\\u001B[93m\";\n LogColor[\"StopColor\"] = \"\\u001B[0m\";\n})(LogColor || (LogColor = {}));\nvar LogLevel;\n(function (LogLevel) {\n LogLevel[\"Debug\"] = \"DEBUG\";\n LogLevel[\"Info\"] = \"INFO\";\n LogLevel[\"Error\"] = \"ERROR\";\n LogLevel[\"Warning\"] = \"WARNING\";\n LogLevel[\"Disabled\"] = \"DISABLED\";\n})(LogLevel || (exports.LogLevel = LogLevel = {}));\nconst logLevelMap = {\n [LogLevel.Warning]: 1,\n [LogLevel.Info]: 2,\n [LogLevel.Debug]: 3,\n [LogLevel.Error]: 0,\n [LogLevel.Disabled]: -1,\n};\nconst DEFAULT_LOG_LEVEL = logLevelMap[LogLevel.Warning];\nlet logLevel = typeof process === \"undefined\"\n ? DEFAULT_LOG_LEVEL\n : (_a = logLevelMap[process.env.LOG_LEVEL]) !== null && _a !== void 0 ? _a : DEFAULT_LOG_LEVEL;\nfunction setLogLevel(level) {\n logLevel = logLevelMap[level];\n}\nfunction getLogLevel() {\n return Object.keys(logLevelMap).find(key => logLevelMap[key] === logLevel);\n}\nfunction debug(message, moduleName) {\n if (logLevel >= 3) {\n emitLogMessage({\n message,\n moduleName,\n msgType: MsgType.Debug,\n color: LogColor.Blue,\n });\n }\n}\nfunction info(message, moduleName) {\n if (logLevel >= 2) {\n emitLogMessage({\n message,\n moduleName,\n msgType: MsgType.Info,\n color: LogColor.Green,\n });\n }\n}\nfunction error(message, moduleName) {\n if (logLevel != -1) {\n emitLogMessage({\n message,\n moduleName,\n msgType: MsgType.Error,\n color: LogColor.Red,\n });\n }\n}\nfunction warning(message, moduleName) {\n if (logLevel >= 1) {\n emitLogMessage({\n message,\n moduleName,\n msgType: MsgType.Warning,\n color: LogColor.Yellow,\n });\n }\n}\nfunction emitLogMessage({ msgType, message, color, moduleName, }) {\n const time = getTimestamp();\n const moduleNameMessage = moduleName ? `[${moduleName}]` : \"\";\n console.log(`[${time}] ${color}${msgType}:${LogColor.StopColor} ${moduleNameMessage} ${message}`);\n}\nfunction getTimestamp() {\n const pad = (n, s = 2) => `${new Array(s).fill(0)}${n}`.slice(-s);\n const date = new Date();\n return `${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}:${pad(date.getMilliseconds(), 3)}`;\n}\nfunction logger(moduleName) {\n return {\n debug: (message) => debug(message, moduleName),\n info,\n error,\n warning,\n setLogLevel,\n disable: () => setLogLevel(LogLevel.Disabled),\n };\n}\n//# sourceMappingURL=logger.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GetBridFromChainException = exports.SerializedTransactionFormatException = exports.InvalidTxRidException = exports.UnexpectedStatusError = exports.TxRejectedError = exports.GetTransactionRidException = exports.InvalidTransactionFormatException = exports.DirectoryNodeUrlPoolException = exports.BlockchainUrlUndefinedException = exports.MissingNodeUrlError = exports.MissingBlockchainIdentifierError = exports.MissingPubKeyError = void 0;\nconst customError_1 = require(\"../customError\");\nconst formatter_1 = require(\"../formatter\");\nclass MissingPubKeyError extends customError_1.CustomError {\n constructor() {\n super(`No public key was provided`, 400);\n }\n}\nexports.MissingPubKeyError = MissingPubKeyError;\nclass MissingBlockchainIdentifierError extends customError_1.CustomError {\n constructor() {\n super(`No blockchain identifier was provided. Include either a blockchainRid (string) or a blockchainIid (number).`, 400);\n }\n}\nexports.MissingBlockchainIdentifierError = MissingBlockchainIdentifierError;\nclass MissingNodeUrlError extends customError_1.CustomError {\n constructor() {\n super(`No node url or directory node url was provided. Include either a nodeUrl (string or string[]) or a directory node url (string or string[]).`, 400);\n }\n}\nexports.MissingNodeUrlError = MissingNodeUrlError;\nclass BlockchainUrlUndefinedException extends customError_1.CustomError {\n constructor(brid) {\n const idType = typeof brid === \"string\" ? \"BRID\" : \"IID\";\n super(`Cannot find nodes hosting the blockchain with ${idType} ${brid}`, 400);\n }\n}\nexports.BlockchainUrlUndefinedException = BlockchainUrlUndefinedException;\nclass DirectoryNodeUrlPoolException extends customError_1.CustomError {\n constructor() {\n super(`No directory node url was provided`, 400);\n }\n}\nexports.DirectoryNodeUrlPoolException = DirectoryNodeUrlPoolException;\nclass InvalidTransactionFormatException extends customError_1.CustomError {\n constructor() {\n super(`The transaction is not in the right format`, 400);\n }\n}\nexports.InvalidTransactionFormatException = InvalidTransactionFormatException;\nclass GetTransactionRidException extends customError_1.CustomError {\n constructor(error) {\n super(`\"Error occurred while getting transaction RID:\", ${error}`, 400);\n }\n}\nexports.GetTransactionRidException = GetTransactionRidException;\nclass TxRejectedError extends Error {\n constructor(rejectReason) {\n super(`Transaction was rejected, ${rejectReason}`);\n this.name = \"TxRejectedError\";\n this.fullReason = rejectReason;\n const result = (0, formatter_1.matchRellErrorString)(rejectReason);\n this.shortReason = result.shortReason;\n this.rellLine = result.rellLine;\n this.operation = result.operation;\n }\n}\nexports.TxRejectedError = TxRejectedError;\nclass UnexpectedStatusError extends customError_1.CustomError {\n constructor(status, error) {\n let errorMessage = `Unexpected status code from server. Code: ${status}.`;\n if (status === null) {\n super(errorMessage, 500); // default status code\n }\n else {\n if (error) {\n errorMessage += ` Message: ${error}.`;\n }\n super(errorMessage, status);\n }\n }\n}\nexports.UnexpectedStatusError = UnexpectedStatusError;\nclass InvalidTxRidException extends customError_1.CustomError {\n constructor(txRID) {\n super(`expected length 32 of txRID, but got ${txRID && txRID.length}`, 400);\n }\n}\nexports.InvalidTxRidException = InvalidTxRidException;\nclass SerializedTransactionFormatException extends customError_1.CustomError {\n constructor() {\n super(`messageHash is not a Buffer`, 400);\n }\n}\nexports.SerializedTransactionFormatException = SerializedTransactionFormatException;\nclass GetBridFromChainException extends Error {\n constructor(chainId, reason) {\n super(`Error resolving BRID for chainId ${chainId}, reason: ${reason}`);\n }\n}\nexports.GetBridFromChainException = GetBridFromChainException;\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Method = exports.ChainConfirmationLevel = exports.AnchoringStatus = exports.TransactionEvent = exports.ResponseStatus = exports.FailoverStrategy = void 0;\nvar FailoverStrategy;\n(function (FailoverStrategy) {\n FailoverStrategy[\"AbortOnError\"] = \"abortOnError\";\n FailoverStrategy[\"TryNextOnError\"] = \"tryNextOnError\";\n FailoverStrategy[\"SingleEndpoint\"] = \"singleEndpoint\";\n FailoverStrategy[\"QueryMajority\"] = \"queryMajority\";\n})(FailoverStrategy || (exports.FailoverStrategy = FailoverStrategy = {}));\nvar ResponseStatus;\n(function (ResponseStatus) {\n ResponseStatus[\"Pending\"] = \"pending\";\n ResponseStatus[\"Confirmed\"] = \"confirmed\";\n ResponseStatus[\"Rejected\"] = \"rejected\";\n ResponseStatus[\"Unknown\"] = \"unknown\";\n ResponseStatus[\"Waiting\"] = \"waiting\";\n})(ResponseStatus || (exports.ResponseStatus = ResponseStatus = {}));\nvar TransactionEvent;\n(function (TransactionEvent) {\n TransactionEvent[\"ClusterAnchoringConfirmation\"] = \"clusterAnchoringConfirmed\";\n TransactionEvent[\"SystemAnchoringConfirmation\"] = \"systemAnchoringConfirmed\";\n TransactionEvent[\"DappConfirmed\"] = \"dappConfirmed\";\n TransactionEvent[\"DappReceived\"] = \"dappReceived\";\n TransactionEvent[\"Signed\"] = \"signed\";\n TransactionEvent[\"Rejected\"] = \"rejected\";\n})(TransactionEvent || (exports.TransactionEvent = TransactionEvent = {}));\nvar AnchoringStatus;\n(function (AnchoringStatus) {\n AnchoringStatus[\"NotAnchored\"] = \"notAnchored\";\n AnchoringStatus[\"ClusterAnchored\"] = \"clusterAnchored\";\n AnchoringStatus[\"SystemAnchored\"] = \"systemAnchored\";\n AnchoringStatus[\"FailedAnchoring\"] = \"failedAnchoring\";\n})(AnchoringStatus || (exports.AnchoringStatus = AnchoringStatus = {}));\nvar ChainConfirmationLevel;\n(function (ChainConfirmationLevel) {\n ChainConfirmationLevel[\"None\"] = \"none\";\n ChainConfirmationLevel[\"Dapp\"] = \"dapp\";\n ChainConfirmationLevel[\"ClusterAnchoring\"] = \"clusterAnchoring\";\n ChainConfirmationLevel[\"SystemAnchoring\"] = \"systemAnchoring\";\n ChainConfirmationLevel[\"EvmNetwork\"] = \"evmNetwork\";\n})(ChainConfirmationLevel || (exports.ChainConfirmationLevel = ChainConfirmationLevel = {}));\nvar Method;\n(function (Method) {\n Method[\"GET\"] = \"get\";\n Method[\"POST\"] = \"post\";\n})(Method || (exports.Method = Method = {}));\n//# sourceMappingURL=enums.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createNodeManager = exports.NetworkNode = void 0;\nconst logger = __importStar(require(\"../logger\"));\nclass NetworkNode {\n constructor(url) {\n this.availabilityDate = 0;\n this.url = url;\n }\n isAvailable() {\n return Date.now() >= this.availabilityDate;\n }\n makeUnavailable(duration) {\n this.availabilityDate = Date.now() + duration;\n }\n makeAvailable() {\n this.availabilityDate = 0;\n }\n}\nexports.NetworkNode = NetworkNode;\nconst shuffleArray = (array) => {\n const shuffledArray = [...array];\n for (let i = shuffledArray.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [shuffledArray[i], shuffledArray[j]] = [shuffledArray[j], shuffledArray[i]];\n }\n return shuffledArray;\n};\nconst createNodeManager = ({ nodeUrls, useStickyNode = false, unavailableDuration = 5000, }) => {\n const nodes = nodeUrls.map(url => new NetworkNode(url));\n return {\n nodes,\n stickedNode: null,\n useStickyNode: useStickyNode,\n lastUsedNode: null,\n getAvailableNodes(customRecoveryThreshold) {\n const availableNodes = this.nodes.filter((node) => node.isAvailable());\n if (this.nodes.length >= 3) {\n // Default to conservative threshold (2x formula) if no custom threshold provided\n const recoveryThreshold = customRecoveryThreshold !== null && customRecoveryThreshold !== void 0 ? customRecoveryThreshold : this.nodes.length - Math.floor((2 * (this.nodes.length - 1)) / 3);\n if (availableNodes.length < recoveryThreshold) {\n logger.debug(`Auto-recovery: ${availableNodes.length} < ${recoveryThreshold} nodes (${this.nodes.length} total)`);\n const previousStickyUrl = this.stickedNode;\n this.makeAllNodesAvailable();\n if (this.useStickyNode && previousStickyUrl) {\n if (previousStickyUrl) {\n this.setStickyNode(previousStickyUrl);\n logger.info(`Sticky node preserved during recovery: ${previousStickyUrl}`);\n }\n }\n const updatedAvailableNodes = this.nodes.filter((node) => node.isAvailable());\n return shuffleArray(updatedAvailableNodes);\n }\n }\n const shuffledAvailableNodes = shuffleArray(availableNodes);\n // set sticky node as the first node, and then shuffle the rest\n if (useStickyNode && this.stickedNode && this.stickedNode.isAvailable()) {\n const nodesWithoutSticky = shuffledAvailableNodes.filter(node => node !== this.stickedNode);\n return [this.stickedNode, ...nodesWithoutSticky];\n }\n return shuffledAvailableNodes;\n },\n setStickyNode(node) {\n this.stickedNode = node;\n },\n setUseStickyNode(useSticky) {\n this.useStickyNode = useSticky;\n },\n getNode() {\n const nodes = this.getAvailableNodes();\n if (nodes.length === 0) {\n return null;\n }\n const index = Math.floor(Math.random() * nodes.length);\n const node = nodes[index];\n this.lastUsedNode = node;\n if (!this.useStickyNode) {\n return node;\n }\n if (!this.stickedNode) {\n this.setStickyNode(node);\n return node;\n }\n this.lastUsedNode = this.stickedNode;\n return this.stickedNode;\n },\n makeAllNodesAvailable() {\n for (const node of this.nodes) {\n node.makeAvailable();\n }\n },\n makeNodeUnavailable(nodeUrl, duration = unavailableDuration) {\n if (this.stickedNode && this.stickedNode.url === nodeUrl) {\n this.stickedNode = null;\n }\n const invalidNode = this.nodes.find((node) => node.url === nodeUrl);\n if (!invalidNode)\n return;\n invalidNode.makeUnavailable(duration);\n },\n };\n};\nexports.createNodeManager = createNodeManager;\n//# sourceMappingURL=nodeManager.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BufferSchema = void 0;\nconst buffer_1 = require(\"buffer\");\nconst zod_1 = require(\"zod\");\nexports.BufferSchema = zod_1.z.union([zod_1.z.instanceof(Uint8Array), zod_1.z.instanceof(buffer_1.Buffer)]);\n//# sourceMappingURL=bufferSchema.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isTxRidValid = exports.TxRidSchema = void 0;\nconst errors_1 = require(\"../errors\");\nconst bufferSchema_1 = require(\"./bufferSchema\");\nexports.TxRidSchema = bufferSchema_1.BufferSchema.refine(x => x.length === 32, \"Rid must be 32 bytes long\");\nconst isTxRidValid = (rid, options) => {\n const TxRidValidationContext = exports.TxRidSchema.safeParse(rid);\n const { throwOnError = false } = options || {};\n const hasError = \"error\" in TxRidValidationContext;\n if (!hasError) {\n return { success: true };\n }\n const validationError = new errors_1.InvalidTxRidException(rid);\n if (throwOnError) {\n throw validationError;\n }\n return {\n success: false,\n error: TxRidValidationContext.error,\n message: validationError.message,\n };\n};\nexports.isTxRidValid = isTxRidValid;\n//# sourceMappingURL=txRid.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AnchoringTransactionSchema = void 0;\nconst buffer_1 = require(\"buffer\");\nconst zod_1 = require(\"zod\");\nconst txRid_1 = require(\"./txRid\");\nexports.AnchoringTransactionSchema = zod_1.z.object({\n txRid: zod_1.z.instanceof(buffer_1.Buffer).superRefine((rid, refCtx) => {\n const txRidValidation = txRid_1.TxRidSchema.safeParse(rid);\n if (!txRidValidation.success)\n txRidValidation.error.issues.forEach(issue => refCtx.addIssue(issue));\n }),\n txData: zod_1.z.instanceof(buffer_1.Buffer).refine(data => data.length > 0, {\n message: \"txData must be a non-empty Buffer\",\n }),\n txOpIndex: zod_1.z.number().int().nonnegative({ message: \"txOpIndex must be a non-negative integer\" }),\n});\n//# sourceMappingURL=anchoringTransaction.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlockAnchoringException = exports.ConfirmationProofException = exports.SystemChainException = exports.ProofRidException = exports.SignatureException = exports.DifferentNumberOfSignersException = exports.MissingTransactionProof = void 0;\nconst formatter_1 = require(\"../formatter\");\nclass MissingTransactionProof extends Error {\n constructor(proofHash, fetchedTxHash) {\n super(`Unable to verify source transaction proof,transaction hash in proof ${(0, formatter_1.toString)(proofHash)} does not match hash from fetched transaction ${(0, formatter_1.toString)(fetchedTxHash)}`);\n }\n}\nexports.MissingTransactionProof = MissingTransactionProof;\nclass DifferentNumberOfSignersException extends Error {\n constructor(length, comparableLength) {\n super(`Transaction signatures amount ${length} do not match expected amount of signers ${comparableLength}`);\n }\n}\nexports.DifferentNumberOfSignersException = DifferentNumberOfSignersException;\nclass SignatureException extends Error {\n constructor(signer) {\n super(`Expected signer ${(0, formatter_1.toString)(signer)} has not signed source transaction`);\n }\n}\nexports.SignatureException = SignatureException;\nclass ProofRidException extends Error {\n constructor() {\n super(\"Unable to verify source transaction proof, got a different transaction from query than we asked for\");\n }\n}\nexports.ProofRidException = ProofRidException;\nclass SystemChainException extends Error {\n constructor(errorMessage) {\n super(`Query to system chain failed with error: ${errorMessage}`);\n }\n}\nexports.SystemChainException = SystemChainException;\nclass ConfirmationProofException extends Error {\n constructor(transactionRid) {\n super(`Unable to fetch confirmation proof for transaction RID: ${(0, formatter_1.ensureString)(transactionRid)}.`);\n }\n}\nexports.ConfirmationProofException = ConfirmationProofException;\nclass BlockAnchoringException extends Error {\n constructor() {\n super(`Block is not present in cluster anchoring chain`);\n }\n}\nexports.BlockAnchoringException = BlockAnchoringException;\n//# sourceMappingURL=error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isString = isString;\nexports.isDictPair = isDictPair;\nexports.isRawGtv = isRawGtv;\nexports.isTransactionInfoInBlockResponse = isTransactionInfoInBlockResponse;\nexports.isTransactionInfoInBlockResponseArray = isTransactionInfoInBlockResponseArray;\nexports.isBlockInfoResponse = isBlockInfoResponse;\nexports.isBlockInfoResponseArray = isBlockInfoResponseArray;\nexports.isTransaction = isTransaction;\nexports.isTransactionsCount = isTransactionsCount;\nexports.isTransactionConfirmationProof = isTransactionConfirmationProof;\nexports.isConfirmationProof = isConfirmationProof;\nexports.isTransactionInfoResponse = isTransactionInfoResponse;\nexports.isTransactionInfoResponseArray = isTransactionInfoResponseArray;\nexports.isTransactionInfo = isTransactionInfo;\nexports.isTransactionInfoArray = isTransactionInfoArray;\nexports.isRejectedTransaction = isRejectedTransaction;\nexports.isRejectedTransactionArray = isRejectedTransactionArray;\nexports.isRejectedTransactionResponse = isRejectedTransactionResponse;\nexports.isRejectedTransactionResponseArray = isRejectedTransactionResponseArray;\nconst buffer_1 = require(\"buffer\");\nconst zod_1 = require(\"zod\");\nconst RawGtvSchema = zod_1.z.union([\n zod_1.z.boolean(),\n zod_1.z.string(),\n zod_1.z.number(),\n zod_1.z.bigint(),\n zod_1.z.instanceof(buffer_1.Buffer),\n zod_1.z.array(zod_1.z.unknown()),\n zod_1.z.record(zod_1.z.unknown()),\n]);\nconst DictPairSchema = zod_1.z.record(RawGtvSchema);\nconst TransactionInfoInBlockResponseSchema = zod_1.z.object({\n rid: zod_1.z.string(),\n hash: zod_1.z.string(),\n data: zod_1.z.string().optional(),\n});\nconst BlockInfoResponseSchema = zod_1.z.object({\n rid: zod_1.z.string(),\n prevBlockRID: zod_1.z.string(),\n header: zod_1.z.string(),\n height: zod_1.z.number(),\n transactions: zod_1.z.array(TransactionInfoInBlockResponseSchema),\n witness: zod_1.z.string(),\n witnesses: zod_1.z.array(zod_1.z.string()),\n timestamp: zod_1.z.number(),\n});\nconst TransactionObjectSchema = zod_1.z.object({\n tx: zod_1.z.string(),\n});\nconst TransactionsCountSchema = zod_1.z.object({\n transactionsCount: zod_1.z.number(),\n});\nconst TransactionConfirmationProofSchema = zod_1.z.object({\n proof: zod_1.z.string(),\n});\nconst ConfirmationProofSchema = zod_1.z.object({\n hash: zod_1.z.instanceof(buffer_1.Buffer),\n blockHeader: zod_1.z.instanceof(buffer_1.Buffer),\n witness: zod_1.z.instanceof(buffer_1.Buffer),\n merkleProofTree: RawGtvSchema,\n txIndex: zod_1.z.number(),\n});\nconst TransactionInfoResponseSchema = zod_1.z.object({\n blockRID: zod_1.z.string(),\n blockHeight: zod_1.z.number(),\n blockHeader: zod_1.z.string(),\n witness: zod_1.z.string(),\n timestamp: zod_1.z.number(),\n txRID: zod_1.z.string(),\n txHash: zod_1.z.string(),\n txData: zod_1.z.string(),\n});\nconst TransactionInfoSchema = zod_1.z.object({\n blockRid: zod_1.z.instanceof(buffer_1.Buffer),\n blockHeight: zod_1.z.number(),\n blockHeader: zod_1.z.instanceof(buffer_1.Buffer),\n witness: zod_1.z.instanceof(buffer_1.Buffer),\n timestamp: zod_1.z.number(),\n txRid: zod_1.z.instanceof(buffer_1.Buffer),\n txHash: zod_1.z.instanceof(buffer_1.Buffer),\n txData: zod_1.z.instanceof(buffer_1.Buffer),\n});\nconst RejectedTransactionSchema = zod_1.z.object({\n txRid: zod_1.z.instanceof(buffer_1.Buffer),\n rejectReason: zod_1.z.string(),\n rejectTimestamp: zod_1.z.number(),\n});\nconst RejectedTransactionResponseSchema = zod_1.z.object({\n txRID: zod_1.z.string(),\n rejectReason: zod_1.z.string(),\n rejectTimestamp: zod_1.z.number(),\n});\nfunction isString(value) {\n const result = zod_1.z.string().safeParse(value);\n return result.success ? value : null;\n}\nfunction isDictPair(value) {\n const result = DictPairSchema.safeParse(value);\n return result.success ? value : null;\n}\nfunction isRawGtv(value) {\n const result = RawGtvSchema.safeParse(value);\n return result.success ? value : null;\n}\nfunction isTransactionInfoInBlockResponse(value) {\n const result = TransactionInfoInBlockResponseSchema.safeParse(value);\n return result.success ? value : null;\n}\nfunction isTransactionInfoInBlockResponseArray(value) {\n const result = zod_1.z.array(TransactionInfoInBlockResponseSchema).safeParse(value);\n return result.success ? value : null;\n}\nfunction isBlockInfoResponse(value) {\n const result = BlockInfoResponseSchema.safeParse(value);\n return result.success ? value : null;\n}\nfunction isBlockInfoResponseArray(value) {\n const result = zod_1.z.array(BlockInfoResponseSchema).safeParse(value);\n return result.success ? value : null;\n}\nfunction isTransaction(value) {\n const result = TransactionObjectSchema.safeParse(value);\n return result.success ? value : null;\n}\nfunction isTransactionsCount(value) {\n const result = TransactionsCountSchema.safeParse(value);\n return result.success ? value : null;\n}\nfunction isTransactionConfirmationProof(value) {\n const result = TransactionConfirmationProofSchema.safeParse(value);\n return result.success ? value : null;\n}\nfunction isConfirmationProof(value) {\n const result = ConfirmationProofSchema.safeParse(value);\n return result.success ? value : null;\n}\nfunction isTransactionInfoResponse(value) {\n const result = TransactionInfoResponseSchema.safeParse(value);\n return result.success ? value : null;\n}\nfunction isTransactionInfoResponseArray(value) {\n const result = zod_1.z.array(TransactionInfoResponseSchema).safeParse(value);\n return result.success ? value : null;\n}\nfunction isTransactionInfo(value) {\n const result = TransactionInfoSchema.safeParse(value);\n return result.success ? value : null;\n}\nfunction isTransactionInfoArray(value) {\n const result = zod_1.z.array(TransactionInfoSchema).safeParse(value);\n return result.success ? value : null;\n}\nfunction isRejectedTransaction(value) {\n const result = RejectedTransactionSchema.safeParse(value);\n return result.success ? value : null;\n}\nfunction isRejectedTransactionArray(value) {\n const result = zod_1.z.array(RejectedTransactionSchema).safeParse(value);\n return result.success ? value : null;\n}\nfunction isRejectedTransactionResponse(value) {\n const result = RejectedTransactionResponseSchema.safeParse(value);\n return result.success ? value : null;\n}\nfunction isRejectedTransactionResponseArray(value) {\n const result = zod_1.z.array(RejectedTransactionResponseSchema).safeParse(value);\n return result.success ? value : null;\n}\n//# sourceMappingURL=requests.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeTransaction = encodeTransaction;\nconst gtx_1 = require(\"../gtx/gtx\");\n/**\n *\n * Encodes the gtx using ASN.1.\n * @returns the gtx encoded\n */\nfunction encodeTransaction(gtx) {\n return (0, gtx_1.serialize)(gtx);\n}\n//# sourceMappingURL=encodeTransaction.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateMerkleHash = void 0;\nconst zod_1 = require(\"zod\");\nconst constants_1 = require(\"../../utils/constants\");\nconst MerkleHashSchema = zod_1.z.object({\n merkle_hash_version: zod_1.z.number().int().positive(),\n});\nconst validateMerkleHash = (data) => {\n const result = MerkleHashSchema.safeParse(data);\n if (!result.success) {\n return { merkle_hash_version: constants_1.MERKLE_HASH_VERSIONS.ONE };\n }\n return result.data;\n};\nexports.validateMerkleHash = validateMerkleHash;\n//# sourceMappingURL=merkleHash.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.handleRequest = handleRequest;\nconst buffer_1 = require(\"buffer\");\nconst logger = __importStar(require(\"../logger\"));\nconst serialization_1 = require(\"../gtx/serialization\");\nconst enums_1 = require(\"./enums\");\nfunction createTimeoutController(timeout) {\n if (!timeout)\n return { controller: undefined, timeoutId: undefined };\n const controller = new AbortController();\n const timeoutError = new Error(`Request timeout after ${timeout}ms`);\n timeoutError.name = 'TimeoutError';\n const timeoutId = setTimeout(() => controller.abort(timeoutError), timeout);\n return { controller, timeoutId };\n}\nfunction handleRequest(method, path, endpoint, timeout, postObject) {\n return __awaiter(this, void 0, void 0, function* () {\n if (method == enums_1.Method.GET) {\n return yield get(path, endpoint, timeout);\n }\n else {\n return yield post(path, endpoint, timeout, postObject);\n }\n });\n}\n/**\n * Sends request to get data from a given API endpoint.\n * @param path API endpoint of Rell backend\n * @param endpoint\n * @param timeout\n */\nfunction get(path, endpoint, timeout) {\n return __awaiter(this, void 0, void 0, function* () {\n logger.debug(`GET URL ${new URL(path, endpoint).href}`);\n try {\n const { controller, timeoutId } = createTimeoutController(timeout);\n const response = yield fetch(new URL(path, endpoint).href, {\n signal: controller === null || controller === void 0 ? void 0 : controller.signal,\n });\n if (timeoutId)\n clearTimeout(timeoutId);\n const contentType = response.headers.get(\"Content-Type\");\n const transactionTimestamp = response.headers.get(\"X-Transaction-Timestamp\");\n let rspBody = null;\n const error = null;\n if (contentType === null || contentType === void 0 ? void 0 : contentType.includes(\"application/json\")) {\n rspBody = yield response.json();\n }\n else if (contentType === null || contentType === void 0 ? void 0 : contentType.includes(\"text/plain\")) {\n rspBody = yield response.text();\n }\n else if (contentType === null || contentType === void 0 ? void 0 : contentType.includes(\"application/octet-stream\")) {\n rspBody = yield constructBufferResponseBody(response);\n }\n return createResponseObject(error, response.status, rspBody, transactionTimestamp);\n }\n catch (error) {\n logger.error(error.message);\n return createResponseObject(error, null, null);\n }\n });\n}\nfunction constructBufferResponseBody(response) {\n return __awaiter(this, void 0, void 0, function* () {\n const contentType = response.headers.get(\"content-type\");\n if (contentType === \"application/octet-stream\") {\n const responseBuffer = yield response.arrayBuffer();\n const buffer = buffer_1.Buffer.from(responseBuffer);\n return (0, serialization_1.decodeValue)(buffer);\n }\n if (contentType === \"application/json\") {\n return yield response.json();\n }\n const responseText = yield response.text();\n return responseText ? responseText : response.statusText;\n });\n}\n/**\n * Sends request to post data to a given API endpoint.\n * @param path API endpoint of Rell backend\n * @param endpoint\n * @param timeout\n * @param requestBody request body\n */\nfunction post(path, endpoint, timeout, requestBody) {\n return __awaiter(this, void 0, void 0, function* () {\n logger.debug(`POST URL ${new URL(path, endpoint).href}`);\n logger.debug(`POST body ${JSON.stringify(requestBody)}`);\n if (buffer_1.Buffer.isBuffer(requestBody)) {\n try {\n const { controller, timeoutId } = createTimeoutController(timeout);\n const requestOptions = {\n method: \"post\",\n body: new Uint8Array(requestBody),\n headers: {\n Accept: \"application/octet-stream\",\n \"Content-Type\": \"application/octet-stream\",\n },\n signal: controller === null || controller === void 0 ? void 0 : controller.signal,\n };\n const response = yield fetch(new URL(path, endpoint).href, requestOptions);\n if (timeoutId)\n clearTimeout(timeoutId);\n const transactionTimestamp = response.headers.get(\"X-Transaction-Timestamp\");\n return createResponseObject(null, response.status, yield constructBufferResponseBody(response), transactionTimestamp);\n }\n catch (error) {\n return createResponseObject(error, null, null);\n }\n }\n else {\n try {\n const { controller, timeoutId } = createTimeoutController(timeout);\n const response = yield fetch(new URL(path, endpoint).href, {\n method: \"post\",\n body: JSON.stringify(requestBody),\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n signal: controller === null || controller === void 0 ? void 0 : controller.signal,\n });\n if (timeoutId)\n clearTimeout(timeoutId);\n const transactionTimestamp = response.headers.get(\"X-Transaction-Timestamp\");\n return createResponseObject(null, response.status, yield constructBufferResponseBody(response), transactionTimestamp);\n }\n catch (error) {\n return createResponseObject(error, null, null);\n }\n }\n });\n}\nfunction createResponseObject(error, statusCode, rspBody, transactionTimestamp) {\n let finalStatusCode = statusCode;\n // Handle browser network errors as a specific status code for smart timeout logic\n if (error && !statusCode && !rspBody) {\n finalStatusCode = 502; // Treat as Bad Gateway for timeout purposes\n }\n const responseObject = {\n error,\n statusCode: finalStatusCode,\n rspBody,\n };\n if (transactionTimestamp) {\n responseObject.transactionTimestamp = transactionTimestamp;\n }\n return responseObject;\n}\n//# sourceMappingURL=httpUtil.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isSuccessfulStatusCode = exports.isServerErrorStatusCode = exports.isClientErrorStatusCode = void 0;\nexports.isQueryNotFoundError = isQueryNotFoundError;\nexports.isHttpStatusError = isHttpStatusError;\nexports.isNetworkError = isNetworkError;\nexports.isRetriableClientError = isRetriableClientError;\nfunction isQueryNotFoundError(error) {\n return (typeof error === \"object\" &&\n error !== null &&\n \"code\" in error &&\n error.code === \"QUERY_NOT_FOUND\");\n}\nfunction isHttpStatusError(error) {\n return (typeof error === \"object\" &&\n error !== null &&\n \"status\" in error &&\n typeof error.status === \"number\");\n}\nfunction isNetworkError(error) {\n return (typeof error === \"object\" && error !== null && \"code\" in error && typeof error.code === \"string\");\n}\nfunction isRetriableClientError(response) {\n if (typeof response === \"object\" && response !== null) {\n // Check error field first\n if (\"error\" in response && isQueryNotFoundError(response.error)) {\n return false;\n }\n // Check rspBody if no error\n if (\"rspBody\" in response && isQueryNotFoundError(response.rspBody)) {\n return false;\n }\n }\n return true;\n}\nconst isClientErrorStatusCode = (status) => {\n return status >= 400 && status < 500;\n};\nexports.isClientErrorStatusCode = isClientErrorStatusCode;\nconst isServerErrorStatusCode = (status) => {\n return status >= 500 && status < 600;\n};\nexports.isServerErrorStatusCode = isServerErrorStatusCode;\nconst isSuccessfulStatusCode = (statusCode) => statusCode >= 200 && statusCode < 300;\nexports.isSuccessfulStatusCode = isSuccessfulStatusCode;\n//# sourceMappingURL=http-utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.groupResponses = exports.checkStateOfPromises = exports.errorMessages = void 0;\nexports.abortOnError = abortOnError;\nexports.tryNextOnError = tryNextOnError;\nexports.queryMajority = queryMajority;\nexports.singleEndpoint = singleEndpoint;\nexports.retryRequest = retryRequest;\nexports.racePromisesWithTimeout = racePromisesWithTimeout;\nexports.createTimeoutPromise = createTimeoutPromise;\nconst utils_1 = require(\"./utils\");\nconst httpUtil_1 = require(\"./httpUtil\");\nconst logger = __importStar(require(\"../logger\"));\nconst http_utils_1 = require(\"../utils/http-utils\");\nfunction getUnreachableDuration(statusCode, error) {\n if ((0, http_utils_1.isNetworkError)(error)) {\n const { code } = error;\n if (code === \"ENOTFOUND\")\n return 5 * 60 * 1000;\n if (code === \"ECONNREFUSED\")\n return 5 * 60 * 1000;\n }\n const status = (0, http_utils_1.isHttpStatusError)(error) ? error.status : statusCode;\n switch (status) {\n case 500:\n return 10 * 1000; // Server restart: 10s\n case 502:\n return 30 * 1000; // Gateway: 30s\n case 503:\n return 2 * 1000; // Load: 2s\n case 504:\n return 60 * 1000; // Timeout: 60s\n default:\n return 5 * 1000;\n }\n}\nfunction abortOnError(_a) {\n return __awaiter(this, arguments, void 0, function* ({ method, path, config, postObject, timeoutOverride, }) {\n return yield retryRequest({\n method,\n path,\n config,\n postObject,\n timeoutOverride,\n useNextNodeOnError: false,\n recoveryThreshold: config.recoveryThreshold, // Use user config or let nodeManager use default\n });\n });\n}\nfunction tryNextOnError(_a) {\n return __awaiter(this, arguments, void 0, function* ({ method, path, config, postObject, timeoutOverride, }) {\n return yield retryRequest({\n method,\n path,\n config,\n postObject,\n timeoutOverride,\n useNextNodeOnError: true,\n recoveryThreshold: config.recoveryThreshold,\n });\n });\n}\nexports.errorMessages = {\n NO_CONSENSUS: \"Nodes were not able to reach a consensus\",\n};\nfunction calculateBftMajorityThreshold(endpointPoolLength) {\n return endpointPoolLength - (endpointPoolLength - 1) / 3;\n}\nfunction queryMajority(_a) {\n return __awaiter(this, arguments, void 0, function* ({ method, path, config, postObject, timeoutOverride, }) {\n var _b;\n // Set up constants\n const bftMajorityThreshold = calculateBftMajorityThreshold(config.endpointPool.length);\n const failureThreshold = config.endpointPool.length - bftMajorityThreshold + 1;\n const { nodeManager } = config;\n const timeout = 15000;\n const availableNodes = nodeManager.getAvailableNodes((_b = config.recoveryThreshold) !== null && _b !== void 0 ? _b : bftMajorityThreshold);\n const outcomes = [];\n const promises = availableNodes.map((node) => __awaiter(this, void 0, void 0, function* () {\n try {\n const requestTimeout = timeoutOverride !== null && timeoutOverride !== void 0 ? timeoutOverride : config.responseTimeout;\n const response = yield (0, httpUtil_1.handleRequest)(method, path, node.url, requestTimeout, postObject);\n const { statusCode } = response;\n if (statusCode && (0, http_utils_1.isSuccessfulStatusCode)(statusCode)) {\n outcomes.push({ type: \"SUCCESS\", result: response });\n }\n else {\n if (statusCode && (0, http_utils_1.isServerErrorStatusCode)(statusCode)) {\n const duration = getUnreachableDuration(statusCode, response.error);\n nodeManager.makeNodeUnavailable(node.url, duration);\n }\n outcomes.push({ type: \"FAILURE\", result: response });\n }\n return response;\n }\n catch (error) {\n outcomes.push({ type: \"ERROR\", result: error });\n return error;\n }\n }));\n let remainingPromises = promises;\n // Wait for the necessary majority of outcomes to come back or for the timeout to be reached, whichever comes first.\n for (let i = 0; i < bftMajorityThreshold; i++) {\n remainingPromises = yield racePromisesWithTimeout(remainingPromises, timeout);\n }\n // Evaluate the outcomes\n const successfulOutcomes = outcomes.filter(outcome => outcome.type === \"SUCCESS\");\n const failureOutcomes = outcomes.filter(outcome => outcome.type === \"FAILURE\");\n const errorOutcomes = outcomes.filter(outcome => outcome.type === \"ERROR\");\n // group all of the same responses together into groups and count each groups size\n const groupedSuccessfulResponses = (0, exports.groupResponses)(successfulOutcomes);\n // validate the responses\n // eslint-disable-next-line no-constant-condition\n while (true) {\n // Successful majority response was found\n if (groupedSuccessfulResponses.maxNumberOfEqualResponses() >= bftMajorityThreshold) {\n if (groupedSuccessfulResponses.numberOfDistinctResponses() > 1) {\n logger.warning(`Got disagreeing responses, but could still reach BFT majority`);\n }\n return groupedSuccessfulResponses.majorityResponse();\n }\n // Too many failures or errors to be able to reach a consensus\n // If the number of failures and errors is greater than the failure threshold, return first failure, if any, otherwise throw the first error.\n if ([...failureOutcomes, ...errorOutcomes].length >= failureThreshold) {\n if (failureOutcomes.length > 0) {\n return failureOutcomes[0].result;\n }\n else {\n throw errorOutcomes[0].result;\n }\n }\n // If all nodes have responded without a majority, throw an error.\n if (outcomes.length >= config.endpointPool.length) {\n throw new Error(exports.errorMessages.NO_CONSENSUS);\n }\n // Wait for more one more response to come back. ( we need to set a timeout here)\n remainingPromises = yield racePromisesWithTimeout(remainingPromises, timeout);\n }\n });\n}\nfunction singleEndpoint(_a) {\n return __awaiter(this, arguments, void 0, function* ({ method, path, config, postObject, timeoutOverride, }) {\n let statusCode = null;\n let rspBody = null;\n let error = null;\n let transactionTimestamp = undefined;\n const endpoint = config.nodeManager.getNode();\n if (!endpoint) {\n throw new Error(\"No nodes available after recovery attempt. Check node configuration.\");\n }\n for (let attempt = 0; attempt < config.attemptsPerEndpoint; attempt++) {\n const requestTimeout = timeoutOverride !== null && timeoutOverride !== void 0 ? timeoutOverride : config.responseTimeout;\n const response = yield (0, httpUtil_1.handleRequest)(method, path, endpoint.url, requestTimeout, postObject);\n if (response) {\n ({ error, statusCode, rspBody, transactionTimestamp } = response);\n }\n const isError = statusCode\n ? (0, http_utils_1.isClientErrorStatusCode)(statusCode) || (0, http_utils_1.isServerErrorStatusCode)(statusCode)\n : false;\n if (!isError && !error) {\n return { error, statusCode, rspBody, transactionTimestamp };\n }\n logger.info(`${method} request failed on ${endpoint.url}. Attempt: ${attempt + 1} / ${config.attemptsPerEndpoint}`);\n yield (0, utils_1.sleep)(config.attemptInterval);\n }\n return { error, statusCode, rspBody, transactionTimestamp };\n });\n}\nfunction retryRequest(_a) {\n return __awaiter(this, arguments, void 0, function* ({ method, path, config, postObject, useNextNodeOnError, recoveryThreshold, timeoutOverride, }) {\n var _b, _c, _d;\n let statusCode = null;\n let rspBody = null;\n let error = null;\n let transactionTimestamp = undefined;\n const { nodeManager } = config;\n const availableNodes = nodeManager.getAvailableNodes(recoveryThreshold);\n for (const node of availableNodes) {\n for (let attempt = 0; attempt < config.attemptsPerEndpoint; attempt++) {\n const requestTimeout = timeoutOverride !== null && timeoutOverride !== void 0 ? timeoutOverride : config.responseTimeout;\n const response = yield (0, httpUtil_1.handleRequest)(method, path, node.url, requestTimeout, postObject);\n error = (_b = response === null || response === void 0 ? void 0 : response.error) !== null && _b !== void 0 ? _b : null;\n statusCode = (_c = response === null || response === void 0 ? void 0 : response.statusCode) !== null && _c !== void 0 ? _c : null;\n rspBody = (_d = response === null || response === void 0 ? void 0 : response.rspBody) !== null && _d !== void 0 ? _d : null;\n transactionTimestamp = response === null || response === void 0 ? void 0 : response.transactionTimestamp;\n const isServerError = !!statusCode && (0, http_utils_1.isServerErrorStatusCode)(statusCode);\n const isClientError = !!statusCode && (0, http_utils_1.isClientErrorStatusCode)(statusCode);\n if (!isServerError && !isClientError && statusCode) {\n // Find a way to have this handled more elegantly in the node manager.\n nodeManager.lastUsedNode = node;\n if (nodeManager.stickedNode !== node) {\n node.makeAvailable();\n nodeManager.setStickyNode(node);\n }\n return { error, statusCode, rspBody, transactionTimestamp };\n }\n if (isServerError) {\n const duration = getUnreachableDuration(statusCode !== null && statusCode !== void 0 ? statusCode : undefined, response.error);\n nodeManager.makeNodeUnavailable(node.url, duration);\n logger.info(`request failed with server error on ${node.url} trying next node`);\n break;\n }\n if (isClientError) {\n if (!useNextNodeOnError || !(0, http_utils_1.isRetriableClientError)(response)) {\n return { error, statusCode, rspBody, transactionTimestamp };\n }\n if (!nodeManager.useStickyNode) {\n logger.info(`request failed client error on ${node.url} trying next node`);\n break;\n }\n // Otherwise continue with next attempt for this node\n }\n logger.info(`${method} request failed on ${node.url}. Attempt: ${attempt + 1} / ${config.attemptsPerEndpoint}`);\n // if statement is workaround for test utils\n if (config.attemptInterval > 0) {\n yield (0, utils_1.sleep)(config.attemptInterval);\n }\n }\n }\n return { error, statusCode, rspBody, transactionTimestamp };\n });\n}\nfunction racePromisesWithTimeout(promises, timeout) {\n return __awaiter(this, void 0, void 0, function* () {\n let remainingPromises = [];\n try {\n const resolvedPromise = yield Promise.race([createTimeoutPromise(timeout), ...promises]);\n const promisesWithState = yield (0, exports.checkStateOfPromises)(promises);\n const indexOfpromiseToRemove = promisesWithState.findIndex(p => JSON.stringify(p.value) === JSON.stringify(resolvedPromise));\n // Remove the promise that resolved from the list of promises\n promisesWithState.splice(indexOfpromiseToRemove, 1);\n // Remove the state before returning the promises.\n remainingPromises = promisesWithState.map(p => p.value);\n return remainingPromises;\n }\n catch (error) {\n if (error instanceof Error && error.message === \"Timeout exceeded\") {\n throw error;\n }\n return remainingPromises;\n }\n });\n}\nfunction createTimeoutPromise(timeoutMs) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((_, reject) => {\n setTimeout(() => {\n reject(new Error(\"Timeout exceeded\"));\n }, timeoutMs);\n });\n });\n}\nconst checkStateOfPromises = (promises) => __awaiter(void 0, void 0, void 0, function* () {\n const promiseList = [];\n const pendingState = { status: \"pending\" };\n for (const p of promises) {\n promiseList.push(yield Promise.race([p, pendingState]).then(value => value === pendingState ? Object.assign(Object.assign({}, pendingState), { value: p }) : { status: \"fulfilled\", value }, reason => ({ status: \"rejected\", value: reason })));\n }\n return promiseList;\n});\nexports.checkStateOfPromises = checkStateOfPromises;\nconst stableStringify = (obj) => {\n if (obj && typeof obj === \"object\" && !Array.isArray(obj)) {\n return JSON.stringify(obj, Object.keys(obj).sort());\n }\n return JSON.stringify(obj);\n};\nconst groupResponses = (responses) => {\n const responseMap = responses.reduce((acc, response) => {\n const key = stableStringify(response.result);\n acc[key] = acc[key]\n ? { response: acc[key].response, count: acc[key].count + 1 }\n : { response, count: 1 };\n return acc;\n }, {});\n const distinctResponses = Object.values(responseMap).sort((a, b) => b.count - a.count);\n // Returns the count of the most common response\n const maxNumberOfEqualResponses = () => {\n return distinctResponses.length > 0 ? distinctResponses[0].count : 0;\n };\n // Returns the number of distinct responses\n const numberOfDistinctResponses = () => {\n return distinctResponses.length;\n };\n // Returns the most common response\n const majorityResponse = () => {\n return distinctResponses[0].response.result;\n };\n return {\n maxNumberOfEqualResponses,\n numberOfDistinctResponses,\n majorityResponse,\n };\n};\nexports.groupResponses = groupResponses;\n//# sourceMappingURL=failoverStrategies.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.requestWithFailoverStrategy = requestWithFailoverStrategy;\nconst enums_1 = require(\"./enums\");\nconst failoverStrategies_1 = require(\"./failoverStrategies\");\nfunction requestWithFailoverStrategy(method_1, path_1, config_1, postObject_1) {\n return __awaiter(this, arguments, void 0, function* (method, path, config, postObject, forceSingleEndpoint = false, timeoutOverride) {\n switch (config.failoverStrategy) {\n case enums_1.FailoverStrategy.AbortOnError:\n return yield (0, failoverStrategies_1.abortOnError)({ method, path, config, postObject, timeoutOverride });\n case enums_1.FailoverStrategy.TryNextOnError:\n return yield (0, failoverStrategies_1.tryNextOnError)({ method, path, config, postObject, timeoutOverride });\n case enums_1.FailoverStrategy.SingleEndpoint:\n return yield (0, failoverStrategies_1.singleEndpoint)({ method, path, config, postObject, timeoutOverride });\n case enums_1.FailoverStrategy.QueryMajority:\n if (forceSingleEndpoint) {\n return yield (0, failoverStrategies_1.singleEndpoint)({ method, path, config, postObject, timeoutOverride });\n }\n return yield (0, failoverStrategies_1.queryMajority)({ method, path, config, postObject, timeoutOverride });\n default:\n throw new Error(`Unsupported failover strategy: ${config.failoverStrategy}`);\n }\n });\n}\n//# sourceMappingURL=requestWithFailoverStrategy.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sleep = exports.getUrlsFromEndpoints = exports.createEndpointObjects = exports.defaultFailoverConfig = exports.isKeyPair = exports.formatBlockInfoResponse = exports.formatTransactionInfoResponse = exports.handlePostResponsePromisified = exports.callbackPromiseBuilder = void 0;\nexports.getClientConfigFromSettings = getClientConfigFromSettings;\nexports.getMerkleHashVersionFromDapp = getMerkleHashVersionFromDapp;\nexports.validTxRid = validTxRid;\nexports.nodeDiscovery = nodeDiscovery;\nexports.getBlockchainApiUrls = getBlockchainApiUrls;\nexports.convertToRellOperation = convertToRellOperation;\nexports.getSerializedGTX = getSerializedGTX;\nexports.getGTXFromBufferOrTransactionOrOperation = getGTXFromBufferOrTransactionOrOperation;\nexports.formatRejectedTransactionFromResponse = formatRejectedTransactionFromResponse;\nexports.getSystemClient = getSystemClient;\nexports.getSystemAnchoringChain = getSystemAnchoringChain;\nexports.awaitDappConfirmation = awaitDappConfirmation;\nexports.awaitClusterAnchoringChainConfirmation = awaitClusterAnchoringChainConfirmation;\nexports.handleDappConfirmations = handleDappConfirmations;\nexports.handleSystemConfirmations = handleSystemConfirmations;\nexports.getAnchoringClientAndSystemChainRid = getAnchoringClientAndSystemChainRid;\nexports.getSystemAnchoringTransaction = getSystemAnchoringTransaction;\nexports.setStatusPolling = setStatusPolling;\nexports.setRetryTransactionPolling = setRetryTransactionPolling;\nexports.linkPromiEvents = linkPromiEvents;\nexports.handleGetResponse = handleGetResponse;\nexports.handlePostResponse = handlePostResponse;\nexports.getBlockchainRidFromIid = getBlockchainRidFromIid;\nexports.convertToPrintable = convertToPrintable;\nconst buffer_1 = require(\"buffer\");\nconst logger = __importStar(require(\"../logger\"));\nconst errors_1 = require(\"./errors\");\nconst gtxTool = __importStar(require(\"../gtx/gtx\"));\nconst errors_2 = require(\"./errors\");\nconst formatter_1 = require(\"../formatter\");\nconst blockchainClient_1 = require(\"./blockchainClient\");\nconst enums_1 = require(\"./enums\");\nconst nodeManager_1 = require(\"./nodeManager\");\nconst anchoringTransaction_1 = require(\"./validation/anchoringTransaction\");\nconst error_1 = require(\"../ICCF/error\");\nconst IccfProofTxMaterialBuilder_1 = require(\"../ICCF/IccfProofTxMaterialBuilder\");\nconst utils_1 = require(\"../ICCF/utils\");\nconst requests_1 = require(\"./validation/requests\");\nconst encodeTransaction_1 = require(\"../utils/encodeTransaction\");\nconst merkleHash_1 = require(\"./validation/merkleHash\");\nconst requestWithFailoverStrategy_1 = require(\"./requestWithFailoverStrategy\");\nconst constants_1 = require(\"../utils/constants\");\nconst http_utils_1 = require(\"../utils/http-utils\");\nfunction getClientConfigFromSettings(settings) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n const nodeUrlPoolToUse = yield getNodeUrlsFromSettings(settings);\n if (nodeUrlPoolToUse === null || nodeUrlPoolToUse.length === 0) {\n const id = (_b = (_a = settings.blockchainRid) !== null && _a !== void 0 ? _a : settings.blockchainIid) !== null && _b !== void 0 ? _b : \"Unknown\";\n throw new errors_2.BlockchainUrlUndefinedException(id);\n }\n const endpointPool = (0, exports.createEndpointObjects)(nodeUrlPoolToUse);\n const nodeManager = (0, nodeManager_1.createNodeManager)({\n nodeUrls: nodeUrlPoolToUse,\n useStickyNode: (_c = settings.useStickyNode) !== null && _c !== void 0 ? _c : false,\n unavailableDuration: (_d = settings.failOverConfig) === null || _d === void 0 ? void 0 : _d.unreachableDuration,\n });\n const blockchainRidToUse = yield (() => __awaiter(this, void 0, void 0, function* () {\n var _a;\n if (settings.blockchainRid) {\n return settings.blockchainRid;\n }\n if (settings.blockchainIid !== undefined) {\n return yield getBlockchainRidFromIid({\n nodeManager,\n endpointPool,\n chainId: settings.blockchainIid,\n merkleHashVersion: (_a = settings.merkleHashVersion) !== null && _a !== void 0 ? _a : constants_1.MERKLE_HASH_VERSIONS.UNSET,\n connectTimeout: settings.connectTimeout,\n responseTimeout: settings.responseTimeout,\n });\n }\n throw new errors_2.MissingBlockchainIdentifierError();\n }))();\n const directoryChainRid = yield (() => __awaiter(this, void 0, void 0, function* () {\n var _a;\n if (settings.directoryChainRid) {\n return settings.directoryChainRid;\n }\n const directoryChainIid = 0;\n return yield getBlockchainRidFromIid({\n nodeManager,\n endpointPool,\n chainId: directoryChainIid,\n merkleHashVersion: (_a = settings.merkleHashVersion) !== null && _a !== void 0 ? _a : constants_1.MERKLE_HASH_VERSIONS.UNSET,\n connectTimeout: settings.connectTimeout,\n responseTimeout: settings.responseTimeout,\n });\n }))();\n return {\n endpointPool,\n nodeManager: nodeManager,\n blockchainRid: blockchainRidToUse,\n merkleHashVersion: (_e = settings.merkleHashVersion) !== null && _e !== void 0 ? _e : constants_1.MERKLE_HASH_VERSIONS.UNSET,\n dappStatusPolling: setStatusPolling(settings.dappStatusPolling),\n clusterAnchoringStatusPolling: setStatusPolling(settings.clusterAnchoringStatusPolling),\n systemAnchoringStatusPolling: setStatusPolling(settings.systemAnchoringStatusPolling),\n retryTransactionPolling: setRetryTransactionPolling(settings.retryTransactionPolling),\n failoverStrategy: ((_f = settings.failOverConfig) === null || _f === void 0 ? void 0 : _f.strategy) || exports.defaultFailoverConfig.strategy,\n attemptsPerEndpoint: ((_g = settings.failOverConfig) === null || _g === void 0 ? void 0 : _g.attemptsPerEndpoint) || exports.defaultFailoverConfig.attemptsPerEndpoint,\n attemptInterval: ((_h = settings.failOverConfig) === null || _h === void 0 ? void 0 : _h.attemptInterval) || exports.defaultFailoverConfig.attemptInterval,\n unreachableDuration: ((_j = settings.failOverConfig) === null || _j === void 0 ? void 0 : _j.unreachableDuration) || exports.defaultFailoverConfig.unreachableDuration,\n directoryChainRid: settings.directoryChainRid || directoryChainRid,\n connectTimeout: settings.connectTimeout,\n responseTimeout: settings.responseTimeout,\n };\n });\n}\nfunction getMerkleHashVersionFromDapp(config) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n try {\n const response = yield (0, requestWithFailoverStrategy_1.requestWithFailoverStrategy)(enums_1.Method.GET, `/config/${config.blockchainRid}/features`, config, undefined, false, (_a = config.connectTimeout) !== null && _a !== void 0 ? _a : config.responseTimeout);\n const validatedResponse = (0, merkleHash_1.validateMerkleHash)(response.rspBody);\n return validatedResponse.merkle_hash_version;\n }\n catch (error) {\n console.warn(\"MERKLE_HASH_WARNING: version not found or endpoint unreachable\", error);\n return constants_1.MERKLE_HASH_VERSIONS.ONE;\n }\n });\n}\nfunction validTxRid(txRID) {\n if (txRID.length != 32) {\n const error = new errors_1.InvalidTxRidException(txRID);\n logger.error(error.toString());\n return false;\n }\n return true;\n}\nfunction nodeDiscovery(_a) {\n return __awaiter(this, arguments, void 0, function* ({ nodeManager, directoryEndpointPool, failOverConfig, blockchainRid, blockchainIid, connectTimeout, responseTimeout, }) {\n if (directoryEndpointPool.length === 0) {\n throw new errors_2.DirectoryNodeUrlPoolException();\n }\n if (!blockchainRid && blockchainIid === undefined) {\n throw new errors_2.MissingBlockchainIdentifierError();\n }\n const directoryIid = 0;\n const directoryBRID = yield getBlockchainRidFromIid({\n nodeManager,\n endpointPool: directoryEndpointPool,\n chainId: directoryIid,\n failOverConfig,\n connectTimeout,\n responseTimeout,\n });\n const blockchainRidToUse = yield (() => __awaiter(this, void 0, void 0, function* () {\n if (blockchainRid) {\n return blockchainRid;\n }\n if (blockchainIid !== undefined) {\n return yield getBlockchainRidFromIid({\n nodeManager,\n endpointPool: directoryEndpointPool,\n chainId: blockchainIid,\n failOverConfig,\n connectTimeout,\n responseTimeout,\n });\n }\n throw new errors_2.MissingBlockchainIdentifierError();\n }))();\n const D1Client = yield (0, blockchainClient_1.createClient)({\n nodeUrlPool: (0, exports.getUrlsFromEndpoints)(directoryEndpointPool),\n blockchainRid: directoryBRID,\n });\n return yield getBlockchainApiUrls(D1Client, (0, formatter_1.ensureBuffer)(blockchainRidToUse));\n });\n}\nfunction getBlockchainApiUrls(directoryClient, blockchainRid) {\n return __awaiter(this, void 0, void 0, function* () {\n const queryObject = {\n name: \"cm_get_blockchain_api_urls\",\n args: { blockchain_rid: blockchainRid },\n };\n return yield directoryClient.query(queryObject);\n });\n}\nfunction convertToRellOperation(operations) {\n return operations.map(operation => {\n var _a;\n return {\n opName: operation.name,\n args: (_a = operation.args) !== null && _a !== void 0 ? _a : [],\n };\n });\n}\nfunction getSerializedGTX(gtx) {\n const gtxBytes = (0, encodeTransaction_1.encodeTransaction)(gtx);\n if (!buffer_1.Buffer.isBuffer(gtxBytes)) {\n throw new errors_1.SerializedTransactionFormatException();\n }\n return gtxBytes;\n}\nfunction getGTXFromBufferOrTransactionOrOperation(transaction, blockchainRid) {\n if (buffer_1.Buffer.isBuffer(transaction)) {\n return gtxTool.deserialize(transaction);\n }\n else if (\"operations\" in transaction) {\n return {\n blockchainRid: (0, formatter_1.ensureBuffer)(blockchainRid),\n operations: convertToRellOperation(transaction.operations),\n signers: transaction.signers,\n signatures: [],\n };\n }\n else if (\"name\" in transaction) {\n return {\n blockchainRid: (0, formatter_1.ensureBuffer)(blockchainRid),\n operations: convertToRellOperation([transaction]),\n signers: [],\n signatures: [],\n };\n }\n else {\n throw new errors_2.InvalidTransactionFormatException();\n }\n}\nconst callbackPromiseBuilder = (reject, resolve, callback) => {\n return (error, result) => {\n var _a;\n if (error) {\n callback === null || callback === void 0 ? void 0 : callback(error, null);\n reject(error);\n }\n else {\n callback === null || callback === void 0 ? void 0 : callback(null, (_a = result) !== null && _a !== void 0 ? _a : null);\n resolve(result !== null && result !== void 0 ? result : null);\n }\n };\n};\nexports.callbackPromiseBuilder = callbackPromiseBuilder;\nconst handlePostResponsePromisified = (error, statusCode, rspBody) => {\n return new Promise((resolve, reject) => {\n handlePostResponse(error, statusCode, rspBody, _error => {\n if (_error) {\n reject(_error);\n }\n else {\n resolve();\n }\n });\n });\n};\nexports.handlePostResponsePromisified = handlePostResponsePromisified;\nfunction ensureArray(input) {\n if (typeof input === \"string\") {\n return [input];\n }\n return input;\n}\nconst formatTransactionInfoResponse = (transactionInfoResponse) => {\n return {\n blockRid: (0, formatter_1.toBuffer)(transactionInfoResponse.blockRID),\n blockHeight: transactionInfoResponse.blockHeight,\n blockHeader: (0, formatter_1.toBuffer)(transactionInfoResponse.blockHeader),\n witness: (0, formatter_1.toBuffer)(transactionInfoResponse.witness),\n timestamp: transactionInfoResponse.timestamp,\n txRid: (0, formatter_1.toBuffer)(transactionInfoResponse.txRID),\n txHash: (0, formatter_1.toBuffer)(transactionInfoResponse.txHash),\n txData: (0, formatter_1.toBuffer)(transactionInfoResponse.txData),\n };\n};\nexports.formatTransactionInfoResponse = formatTransactionInfoResponse;\nconst formatBlockInfoResponse = (blockInfoResponse) => {\n return {\n rid: (0, formatter_1.toBuffer)(blockInfoResponse.rid),\n prevBlockRid: (0, formatter_1.toBuffer)(blockInfoResponse.prevBlockRID),\n header: (0, formatter_1.toBuffer)(blockInfoResponse.header),\n transactions: blockInfoResponse.transactions.map(formatTransaction),\n height: blockInfoResponse.height,\n witness: (0, formatter_1.toBuffer)(blockInfoResponse.witness),\n witnesses: blockInfoResponse.witnesses.map(witness => {\n return (0, formatter_1.toBuffer)(witness);\n }),\n timestamp: blockInfoResponse.timestamp,\n };\n};\nexports.formatBlockInfoResponse = formatBlockInfoResponse;\nconst formatTransaction = (transaction) => {\n const formattedTransaction = {\n rid: (0, formatter_1.toBuffer)(transaction.rid),\n hash: (0, formatter_1.toBuffer)(transaction.hash),\n };\n if (transaction.data !== undefined) {\n formattedTransaction.data = (0, formatter_1.toBuffer)(transaction.data);\n }\n return formattedTransaction;\n};\nfunction formatRejectedTransactionFromResponse(rejectedTransactionResponse) {\n return {\n txRid: (0, formatter_1.toBuffer)(rejectedTransactionResponse.txRID),\n rejectReason: rejectedTransactionResponse.rejectReason,\n rejectTimestamp: rejectedTransactionResponse.rejectTimestamp,\n };\n}\nconst isKeyPair = (keypair) => {\n return (typeof keypair === \"object\" &&\n keypair !== null &&\n \"privKey\" in keypair &&\n \"pubKey\" in keypair &&\n keypair.privKey instanceof buffer_1.Buffer &&\n keypair.pubKey instanceof buffer_1.Buffer);\n};\nexports.isKeyPair = isKeyPair;\nfunction getNodeUrlsFromSettings(settings) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n if (settings.directoryNodeUrlPool) {\n // If directoryNodeUrlPool is provided, use nodeDiscovery\n const nodeManager = (0, nodeManager_1.createNodeManager)({\n nodeUrls: ensureArray(settings.directoryNodeUrlPool),\n unavailableDuration: (_a = settings.failOverConfig) === null || _a === void 0 ? void 0 : _a.unreachableDuration,\n });\n const discoveredNodes = yield nodeDiscovery({\n nodeManager,\n directoryEndpointPool: (0, exports.createEndpointObjects)(ensureArray(settings.directoryNodeUrlPool)),\n failOverConfig: settings.failOverConfig,\n blockchainRid: settings.blockchainRid,\n blockchainIid: settings.blockchainIid,\n connectTimeout: settings.connectTimeout,\n responseTimeout: settings.responseTimeout,\n });\n return discoveredNodes;\n }\n else if (typeof settings.nodeUrlPool === \"string\") {\n // If nodeUrlPool is a string, convert it to an array\n return [settings.nodeUrlPool];\n }\n else if (Array.isArray(settings.nodeUrlPool)) {\n // If nodeUrlPool is already an array, use it as-is\n return settings.nodeUrlPool;\n }\n else {\n // Default to an empty array if no valid configuration is provided\n return [];\n }\n });\n}\nfunction getSystemClient(directoryNodeUrlPool, directoryChainRid) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield (0, blockchainClient_1.createClient)({\n directoryNodeUrlPool,\n blockchainRid: directoryChainRid,\n });\n });\n}\nfunction getSystemAnchoringChain(directoryClient) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const queryObject = {\n name: \"cm_get_system_anchoring_chain\",\n };\n const systemAnchoringChain = yield directoryClient.query(queryObject);\n if (!systemAnchoringChain) {\n throw new error_1.SystemChainException(\"Directory chain client must be provided.\");\n }\n return systemAnchoringChain;\n }\n catch (error) {\n throw new error_1.SystemChainException(error.message);\n }\n });\n}\nexports.defaultFailoverConfig = {\n strategy: enums_1.FailoverStrategy.AbortOnError,\n attemptsPerEndpoint: 3,\n attemptInterval: 500,\n unreachableDuration: 30000,\n};\nconst createEndpointObjects = (endpointPoolUrls) => {\n const endpoints = endpointPoolUrls.map(endpointUrl => {\n return { url: endpointUrl, whenAvailable: 0 };\n });\n return endpoints;\n};\nexports.createEndpointObjects = createEndpointObjects;\nconst getUrlsFromEndpoints = (endpointPool) => {\n return endpointPool.map(endpoint => endpoint.url);\n};\nexports.getUrlsFromEndpoints = getUrlsFromEndpoints;\nfunction awaitDappConfirmation(txRID, dappStatusPolling, getTransactionStatus) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n let lastKnownResult = null;\n for (let i = 0; i < dappStatusPolling.count; i++) {\n lastKnownResult = yield getTransactionStatus(txRID);\n if (lastKnownResult.status === enums_1.ResponseStatus.Confirmed) {\n return lastKnownResult;\n }\n else if (lastKnownResult.status === enums_1.ResponseStatus.Rejected) {\n throw new errors_1.TxRejectedError((_a = lastKnownResult.rejectReason) !== null && _a !== void 0 ? _a : \"\");\n }\n yield (0, exports.sleep)(dappStatusPolling.interval);\n }\n throw new Error(`Retry count exceeded. Confirmation not received. Last transaction status: ${lastKnownResult === null || lastKnownResult === void 0 ? void 0 : lastKnownResult.status}`);\n });\n}\nfunction awaitClusterAnchoringChainConfirmation(txRID, clusterAnchoringStatusPolling, getClusterAnchoringTransactionConfirmation) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n let clusterAnchoringConfirmation;\n for (let i = 0; i < clusterAnchoringStatusPolling.count; i++) {\n clusterAnchoringConfirmation = yield getClusterAnchoringTransactionConfirmation(txRID);\n const anchoringTransactionValidaiton = anchoringTransaction_1.AnchoringTransactionSchema.safeParse(clusterAnchoringConfirmation);\n if (anchoringTransactionValidaiton.success) {\n return {\n status: enums_1.AnchoringStatus.ClusterAnchored,\n clusterAnchoredTx: anchoringTransactionValidaiton.data,\n };\n }\n else if (!anchoringTransactionValidaiton.success) {\n throw new errors_1.TxRejectedError((_a = enums_1.AnchoringStatus.FailedAnchoring) !== null && _a !== void 0 ? _a : \"\");\n }\n yield (0, exports.sleep)(clusterAnchoringStatusPolling.interval);\n }\n // TS issue. This could be fixed by implementing new retry strategy\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-expect-error\n return clusterAnchoringConfirmation;\n });\n}\nfunction handleDappConfirmations(transactionRid, doStatusPolling, confirmationLevel, promiEvent, dappStatusPolling, getTransactionStatus, client) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n const transactionReceipt = {\n status: enums_1.ResponseStatus.Pending,\n statusCode: null,\n transactionRid: transactionRid,\n node: (_a = client.config.nodeManager.lastUsedNode) === null || _a === void 0 ? void 0 : _a.url,\n };\n promiEvent.emit(enums_1.TransactionEvent.DappReceived, transactionReceipt);\n if (doStatusPolling === false || confirmationLevel === enums_1.ChainConfirmationLevel.None) {\n return transactionReceipt;\n }\n const dappConfirmationStatus = yield awaitDappConfirmation(transactionRid, dappStatusPolling, getTransactionStatus);\n transactionReceipt.statusCode = dappConfirmationStatus.statusCode;\n transactionReceipt.status = dappConfirmationStatus.status;\n transactionReceipt.node = (_b = client.config.nodeManager.lastUsedNode) === null || _b === void 0 ? void 0 : _b.url;\n promiEvent.emit(enums_1.TransactionEvent.DappConfirmed, transactionReceipt);\n if (confirmationLevel === enums_1.ChainConfirmationLevel.Dapp) {\n return transactionReceipt;\n }\n return transactionReceipt;\n });\n}\nfunction handleSystemConfirmations(transactionReceipt, confirmationLevel, promiEvent, statusPollingConfig, anchoringClient, systemAnchoringChainBrid, getClusterAnchoringTransactionConfirmation, getSystemAnchoringTransactionConfirmation) {\n return __awaiter(this, void 0, void 0, function* () {\n const clusterAnchoringChainConfirmation = yield awaitClusterAnchoringChainConfirmation(transactionReceipt.transactionRid, statusPollingConfig.clusterAnchoringStatusPolling, getClusterAnchoringTransactionConfirmation);\n transactionReceipt.status = clusterAnchoringChainConfirmation.status;\n transactionReceipt.clusterAnchoredTx = clusterAnchoringChainConfirmation.clusterAnchoredTx;\n transactionReceipt.clusterAnchoringClientBrid = anchoringClient.config.blockchainRid;\n promiEvent.emit(enums_1.TransactionEvent.ClusterAnchoringConfirmation, transactionReceipt);\n if (confirmationLevel === enums_1.ChainConfirmationLevel.ClusterAnchoring) {\n return transactionReceipt;\n }\n const systemAnchoringConfirmation = yield getSystemAnchoringTransactionConfirmation(clusterAnchoringChainConfirmation.clusterAnchoredTx.txRid, anchoringClient, systemAnchoringChainBrid);\n if (!systemAnchoringConfirmation) {\n return transactionReceipt;\n }\n transactionReceipt.status = enums_1.AnchoringStatus.SystemAnchored;\n transactionReceipt.systemAnchoredTx = systemAnchoringConfirmation;\n transactionReceipt.systemAnchoringClientBrid = systemAnchoringChainBrid;\n promiEvent.emit(enums_1.TransactionEvent.SystemAnchoringConfirmation, transactionReceipt);\n if (confirmationLevel === enums_1.ChainConfirmationLevel.SystemAnchoring) {\n return transactionReceipt;\n }\n return transactionReceipt;\n });\n}\nfunction getAnchoringClientAndSystemChainRid(client) {\n return __awaiter(this, void 0, void 0, function* () {\n const directoryClient = yield getSystemClient((0, exports.getUrlsFromEndpoints)(client.config.endpointPool), client.config.directoryChainRid);\n const anchoringClient = yield (0, IccfProofTxMaterialBuilder_1.getAnchoringClient)(directoryClient, client.config.blockchainRid);\n const systemAnchoringChainRidBuffer = yield getSystemAnchoringChain(directoryClient);\n const systemAnchoringChainBridString = systemAnchoringChainRidBuffer.toString(\"hex\");\n return { anchoringClient, systemAnchoringChainBridString };\n });\n}\nfunction getSystemAnchoringTransaction(dappClientEndpointPool, anchoredTxRid, anchoringClient, systemAnchoringChainRid, systemAnchoringStatusPolling, merkleHashVersion) {\n return __awaiter(this, void 0, void 0, function* () {\n const systemAnchoringChainClient = yield getSystemClient((0, exports.getUrlsFromEndpoints)(dappClientEndpointPool), systemAnchoringChainRid);\n const clusterAnchoringProof = yield anchoringClient.getConfirmationProof(anchoredTxRid);\n const clusterBlockRid = (0, utils_1.calculateBlockRID)(clusterAnchoringProof, merkleHashVersion);\n const systemAnchoringTransactionConfirmation = yield (0, utils_1.awaitGetAnchoringTransactionForBlockRid)(systemAnchoringChainClient, (0, formatter_1.toBuffer)(anchoringClient.config.blockchainRid), clusterBlockRid, systemAnchoringStatusPolling);\n const systemAnchoringTransactionValidation = anchoringTransaction_1.AnchoringTransactionSchema.safeParse(systemAnchoringTransactionConfirmation);\n if (!systemAnchoringTransactionValidation.success) {\n return null;\n }\n return systemAnchoringTransactionValidation.data;\n });\n}\n/**\n * Should be used to configure the `IClient` `ClientConfig` (config) properties\n * `dappStatusPolling`, `clusterAnchoringStatusPolling` and `systemAnchoringStatusPolling` with\n * the corresponding status polling configuration `interval` and `status`.\n * If the values are not provided, they do default to `500` for `interval` and `20` for `count`\n *\n * @param statusPolling - An optional partial configuration object, that can set the status polling interval and count properties\n * @returns - Returns a complete `StatusPolling` configuration object, with default values for any missing properties\n * of the provided partial configuration\n */\nfunction setStatusPolling(statusPolling) {\n var _a, _b;\n return {\n interval: (_a = statusPolling === null || statusPolling === void 0 ? void 0 : statusPolling.interval) !== null && _a !== void 0 ? _a : 500,\n count: (_b = statusPolling === null || statusPolling === void 0 ? void 0 : statusPolling.count) !== null && _b !== void 0 ? _b : 20,\n };\n}\nfunction setRetryTransactionPolling(statusPolling) {\n var _a, _b;\n return {\n interval: (_a = statusPolling === null || statusPolling === void 0 ? void 0 : statusPolling.interval) !== null && _a !== void 0 ? _a : 500,\n count: (_b = statusPolling === null || statusPolling === void 0 ? void 0 : statusPolling.count) !== null && _b !== void 0 ? _b : 3,\n };\n}\nfunction linkPromiEvents(event1, event2) {\n const transactionEvents = Object.values(enums_1.TransactionEvent).filter((event) => typeof event === \"string\");\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const forwardEvent = (eventName) => (receipt) => event2.emit(eventName, receipt);\n for (const eventName of transactionEvents) {\n event1.on(eventName, forwardEvent(eventName));\n }\n}\n/**\n * @param error response error\n * @param statusCode response status code\n * @param responseObject the responsebody from the server\n * @param callback the callback function to propagate the error and response back to the caller\n */\nfunction handleGetResponse(error, statusCode, responseObject, callback) {\n try {\n const responseObjectPrintable = convertToPrintable(responseObject);\n logger.debug(`error: ${error}, status code: ${statusCode}, response body: ${responseObjectPrintable}`);\n if (error) {\n return callback(error, null);\n }\n if (statusCode !== 200) {\n return callback(new errors_1.UnexpectedStatusError(statusCode !== null && statusCode !== void 0 ? statusCode : 400, responseObjectPrintable), null);\n }\n return callback(null, responseObject);\n }\n catch (error) {\n callback(error, null);\n logger.error(`client.handleGetResponse(): Failed to call the callback function. ${error}`);\n }\n}\n/**\n * @param error response error\n * @param statusCode response status code\n * @param responseObject the responsebody from the server\n * @param callback the callback function to propagate the error and response back to the caller\n */\nfunction handlePostResponse(error, statusCode, responseObject, callback) {\n var _a;\n const responseObjectPrintable = convertToPrintable(responseObject);\n logger.debug(`error: ${error}, status code: ${statusCode}, response body: ${responseObjectPrintable}`);\n try {\n if (error) {\n logger.error(`In client post(). ${error}`);\n callback(error, null);\n }\n else if (!statusCode || !(0, http_utils_1.isSuccessfulStatusCode)(statusCode)) {\n let errorMessage = `Unexpected status code from server. Code: ${statusCode}.`;\n const errorMessageInResponseBody = !!responseObject && typeof responseObject === \"object\" && \"error\" in responseObject\n ? (_a = responseObject.error) === null || _a === void 0 ? void 0 : _a.toString()\n : \"\";\n if (responseObjectPrintable) {\n errorMessage += ` Message: ${responseObjectPrintable}.`;\n }\n logger.error(errorMessage);\n callback(new errors_1.UnexpectedStatusError(statusCode !== null && statusCode !== void 0 ? statusCode : 400, errorMessageInResponseBody || responseObjectPrintable), responseObject);\n }\n else {\n logger.info(`Calling responseCallback with responseObject: ${responseObjectPrintable}`);\n callback(null, responseObject);\n }\n }\n catch (error) {\n logger.error(`client.handlePostResponse(): Failed to call callback function ${error}`);\n }\n}\nfunction getBlockchainRidFromIid(_a) {\n return __awaiter(this, arguments, void 0, function* ({ endpointPool, chainId, failOverConfig = {}, nodeManager, connectTimeout, responseTimeout, }) {\n var _b;\n const mergedFailOverConfig = Object.assign(Object.assign({}, exports.defaultFailoverConfig), failOverConfig);\n const config = {\n endpointPool,\n nodeManager,\n dappStatusPolling: setStatusPolling(),\n clusterAnchoringStatusPolling: setStatusPolling(),\n systemAnchoringStatusPolling: setStatusPolling(),\n retryTransactionPolling: setRetryTransactionPolling(),\n failoverStrategy: mergedFailOverConfig.strategy,\n attemptsPerEndpoint: mergedFailOverConfig.attemptsPerEndpoint,\n attemptInterval: mergedFailOverConfig.attemptInterval,\n unreachableDuration: mergedFailOverConfig.unreachableDuration,\n merkleHashVersion: constants_1.MERKLE_HASH_VERSIONS.UNSET,\n connectTimeout,\n responseTimeout,\n };\n const { error, statusCode, rspBody } = yield (0, requestWithFailoverStrategy_1.requestWithFailoverStrategy)(enums_1.Method.GET, `/brid/iid_${chainId}`, config, undefined, false, (_b = config.connectTimeout) !== null && _b !== void 0 ? _b : config.responseTimeout);\n const blockchainRid = (0, requests_1.isString)(rspBody);\n if (!blockchainRid) {\n throw error;\n }\n if (error) {\n throw new errors_1.GetBridFromChainException(chainId, error.message);\n }\n else if (statusCode !== 200) {\n throw new errors_1.GetBridFromChainException(chainId, blockchainRid);\n }\n return blockchainRid;\n });\n}\nconst sleep = (ms) => new Promise(r => setTimeout(r, ms));\nexports.sleep = sleep;\nfunction convertToPrintable(responseObject) {\n if (typeof responseObject === \"bigint\") {\n return `${responseObject}n`;\n }\n else if (typeof responseObject === \"object\") {\n return JSON.stringify(responseObject, (key, value) => typeof value === \"bigint\" ? `${value}n` : value);\n }\n else {\n return String(responseObject);\n }\n}\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getClusterOfBlockchain = getClusterOfBlockchain;\nexports.getClusterInfo = getClusterInfo;\nexports.awaitGetAnchoringTransactionForBlockRid = awaitGetAnchoringTransactionForBlockRid;\nexports.getAnchoringTransactionForBlockRid = getAnchoringTransactionForBlockRid;\nexports.convertToAnchoringTransaction = convertToAnchoringTransaction;\nexports.calculateBlockRID = calculateBlockRID;\nexports.fetchAndVerifyTransaction = fetchAndVerifyTransaction;\nexports.composeProofTransactionObject = composeProofTransactionObject;\nconst buffer_1 = require(\"buffer\");\nconst errors_1 = require(\"../blockchainClient/errors\");\nconst utils_1 = require(\"../blockchainClient/utils\");\nconst anchoringTransaction_1 = require(\"../blockchainClient/validation/anchoringTransaction\");\nconst encryption_1 = require(\"../encryption/encryption\");\nconst formatter_1 = require(\"../formatter\");\nconst gtv_1 = require(\"../gtv\");\nconst gtx_1 = require(\"../gtx/gtx\");\nconst serialization_1 = require(\"../gtx/serialization\");\nconst error_1 = require(\"./error\");\nfunction getClusterOfBlockchain(client, blockchainRid) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const clusterName = yield client.query({\n name: \"cm_get_blockchain_cluster\",\n args: { brid: blockchainRid },\n });\n return clusterName;\n }\n catch (error) {\n throw new error_1.SystemChainException(error.message);\n }\n });\n}\nfunction getClusterInfo(client, name) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const clusterInfo = yield client.query({\n name: \"cm_get_cluster_info\",\n args: { name },\n });\n return clusterInfo;\n }\n catch (error) {\n throw new error_1.SystemChainException(error.message);\n }\n });\n}\nfunction awaitGetAnchoringTransactionForBlockRid(client, blockchainRid, blockRid, systemAnchoringStatusPolling) {\n return __awaiter(this, void 0, void 0, function* () {\n let anchoringTransactionResponse = null;\n for (let i = 0; i < systemAnchoringStatusPolling.count; i++) {\n anchoringTransactionResponse = yield getAnchoringTransactionForBlockRid(client, blockchainRid, blockRid);\n if (anchoringTransactionResponse) {\n const anchoringTransactionValidaiton = anchoringTransaction_1.AnchoringTransactionSchema.safeParse(anchoringTransactionResponse);\n if (anchoringTransactionValidaiton.success) {\n return anchoringTransactionValidaiton.data;\n }\n else if (!anchoringTransactionValidaiton.success) {\n throw new errors_1.TxRejectedError(\"Invalid anchoring transaction format\");\n }\n }\n yield (0, utils_1.sleep)(systemAnchoringStatusPolling.interval);\n }\n return anchoringTransactionResponse;\n });\n}\nfunction getAnchoringTransactionForBlockRid(client, blockchainRid, blockRid) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const anchoringTxForBlockRid = yield client.query({\n name: \"get_anchoring_transaction_for_block_rid\",\n args: { blockchain_rid: blockchainRid, block_rid: blockRid },\n });\n if (!anchoringTxForBlockRid)\n return null;\n return convertToAnchoringTransaction(anchoringTxForBlockRid);\n }\n catch (error) {\n throw new error_1.SystemChainException(error.message);\n }\n });\n}\nfunction convertToAnchoringTransaction(responseTx) {\n const { tx_rid, tx_data, tx_op_index } = responseTx;\n return {\n txRid: tx_rid,\n txData: tx_data,\n txOpIndex: tx_op_index,\n };\n}\nfunction calculateBlockRID(decodedTxProof, merkleHashVersion) {\n const sourceBlockHeader = decodedTxProof.blockHeader;\n if (!sourceBlockHeader) {\n throw new Error(\"Failed to get blockHeader from confirmation proof\");\n }\n const decodeSourceBlockRid = (0, serialization_1.decodeValue)(sourceBlockHeader);\n return (0, gtv_1.gtvHash)(decodeSourceBlockRid, merkleHashVersion);\n}\n// fetch tx from txRID and verifies with secp256k1.ecdsaVerify that txRID and signer creates signatures that are on the blockchain transaction\nfunction fetchAndVerifyTransaction(sourceClient, txToProveRID, proofHash, txToProveSigners) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c;\n const rawTx = yield sourceClient.getTransaction(txToProveRID);\n const txGtv = (0, serialization_1.decodeValue)(rawTx);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const fetchedTxHash = (0, gtv_1.gtvHash)(txGtv, sourceClient.config.merkleHashVersion);\n if (buffer_1.Buffer.compare(fetchedTxHash, proofHash)) {\n // We received another hash for tx RID than what was included in proof\n // Possibly rouge or faulty node(s). Anyway, we need to give up.\n throw new error_1.MissingTransactionProof(proofHash, fetchedTxHash);\n }\n const fetchedTx = (0, gtx_1.rawGtvToGtx)(txGtv);\n if (txToProveSigners.length != ((_a = fetchedTx.signatures) === null || _a === void 0 ? void 0 : _a.length)) {\n throw new error_1.DifferentNumberOfSignersException((_c = (_b = fetchedTx.signatures) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0, txToProveSigners.length);\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const txRID = (0, gtx_1.getDigestToSign)(fetchedTx, sourceClient.config.merkleHashVersion);\n if (buffer_1.Buffer.compare(txRID, (0, formatter_1.ensureBuffer)(txToProveRID))) {\n throw new error_1.ProofRidException();\n }\n for (const signer of txToProveSigners) {\n let hasSignature = false;\n for (const signature of fetchedTx.signatures) {\n // verify that txRID (hash of gtxBody) signed by signers equals the signatures from network\n if ((0, encryption_1.checkDigestSignature)(txRID, signer, signature)) {\n hasSignature = true;\n break;\n }\n }\n if (!hasSignature)\n throw new error_1.SignatureException(signer);\n }\n return { verifiedTx: fetchedTx, verifiedTxHash: fetchedTxHash };\n });\n}\nfunction composeProofTransactionObject(sourceBlockchainRid, verifiedTxHash, txProof, iccfTxSigners, anchoringTx, anchoringProof, isNetwork = true) {\n let operationArgs;\n operationArgs = {\n sourceBlockchainRid: (0, formatter_1.ensureBuffer)(sourceBlockchainRid),\n transactionHash: verifiedTxHash,\n transactionProof: (0, serialization_1.encodeValue)(txProof),\n };\n if (isNetwork) {\n operationArgs = Object.assign(Object.assign({}, operationArgs), { transactionData: anchoringTx === null || anchoringTx === void 0 ? void 0 : anchoringTx.txData, transactionIndex: anchoringTx === null || anchoringTx === void 0 ? void 0 : anchoringTx.txOpIndex, anchoringProof: anchoringProof && (0, serialization_1.encodeValue)(anchoringProof) });\n }\n return {\n operations: [\n {\n name: \"iccf_proof\",\n args: Object.values(operationArgs),\n },\n ],\n signers: iccfTxSigners,\n };\n}\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createIccfProofTx = createIccfProofTx;\nexports.getBlockAnchoringTransaction = getBlockAnchoringTransaction;\nexports.isBlockAnchored = isBlockAnchored;\nexports.getAnchoringClient = getAnchoringClient;\nconst blockchainClient_1 = require(\"../blockchainClient/blockchainClient\");\nconst utils_1 = require(\"./utils\");\nconst formatter_1 = require(\"../formatter\");\nconst error_1 = require(\"./error\");\nconst utils_2 = require(\"../blockchainClient/utils\");\nconst enums_1 = require(\"../blockchainClient/enums\");\n/**\n * Creates an ICCF (Inter-Chain Communication Framework) proof transaction.\n * This function generates a proof that a specific transaction has occurred on the source blockchain\n * and constructs an ICCF proof transaction that can be posted to the target blockchain.\n *\n * @param {IClient} directoryClient - The client configured to communicate with the management chain.\n * @param {BufferId} txToProveRid - The RID of the transaction to be proven.\n * @param {Buffer} txToProveHash - The hash of the transaction to be proven.\n * @param {PubKey[]} txToProveSigners - An array of public keys representing signers of the transaction to be proven.\n * @param {BufferId} sourceBlockchainRid - The RID of the source blockchain.\n * @param {BufferId} targetBlockchainRid - The RID of the target blockchain.\n * @param {PubKey[]} iccfTxSigners - An array of public keys representing signers of the ICCF proof transaction (optional, default: []).\n * @param {boolean} forceIntraNetworkIccfOperation - Whether to force the ICCF operation to be performed within the same network (optional, default: false).\n * @param {number} merkleHashVersion - The version of the merkle hash to use.\n * @param {string} nodeIdentifierURL - The URL of the node to use.\n * @returns {Promise<IccfProof>} A promise that resolves to an ICCF proof object containing the ICCF proof transaction.\n */\nfunction createIccfProofTx(directoryClient_1, txToProveRid_1, txToProveHash_1, txToProveSigners_1, sourceBlockchainRid_1, targetBlockchainRid_1) {\n return __awaiter(this, arguments, void 0, function* (directoryClient, txToProveRid, txToProveHash, txToProveSigners, sourceBlockchainRid, targetBlockchainRid, iccfTxSigners = [], forceIntraNetworkIccfOperation = false, merkleHashVersion, nodeIdentifierURL) {\n let clientConfiguredToSource;\n if (!nodeIdentifierURL) {\n clientConfiguredToSource = yield (0, blockchainClient_1.createClient)({\n directoryNodeUrlPool: (0, utils_2.getUrlsFromEndpoints)(directoryClient.config.endpointPool),\n blockchainRid: (0, formatter_1.ensureString)(sourceBlockchainRid),\n merkleHashVersion: merkleHashVersion,\n useStickyNode: true,\n });\n }\n else {\n clientConfiguredToSource = yield (0, blockchainClient_1.createClient)({\n nodeUrlPool: nodeIdentifierURL,\n blockchainRid: (0, formatter_1.ensureString)(sourceBlockchainRid),\n merkleHashVersion: merkleHashVersion,\n useStickyNode: true,\n });\n }\n const txProof = yield clientConfiguredToSource.getConfirmationProof(txToProveRid);\n if (!txProof || !txProof.hash) {\n throw new error_1.ConfirmationProofException(txToProveRid);\n }\n const proofHash = txProof.hash;\n const { verifiedTx, verifiedTxHash } = !txToProveHash.equals(proofHash)\n ? yield (0, utils_1.fetchAndVerifyTransaction)(clientConfiguredToSource, txToProveRid, proofHash, txToProveSigners)\n : { verifiedTx: null, verifiedTxHash: txToProveHash };\n const sourceCluster = yield (0, utils_1.getClusterOfBlockchain)(directoryClient, (0, formatter_1.ensureBuffer)(sourceBlockchainRid));\n const targetCluster = yield (0, utils_1.getClusterOfBlockchain)(directoryClient, (0, formatter_1.ensureBuffer)(targetBlockchainRid));\n if (!forceIntraNetworkIccfOperation && sourceCluster === targetCluster) {\n // intra-cluster\n const intraClusterProofTx = (0, utils_1.composeProofTransactionObject)(sourceBlockchainRid, verifiedTxHash, txProof, iccfTxSigners, undefined, undefined, false);\n return { iccfTx: intraClusterProofTx };\n }\n else {\n // intra-network\n const systemClientUsingStickyNode = Object.assign(Object.assign({}, directoryClient), { config: Object.assign(Object.assign({}, directoryClient.config), { failoverStrategy: enums_1.FailoverStrategy.SingleEndpoint }) });\n const anchoringClient = yield getAnchoringClient(systemClientUsingStickyNode, sourceBlockchainRid, sourceCluster);\n const clusterAnchoredTx = yield getBlockAnchoringTransaction(clientConfiguredToSource, anchoringClient, undefined, txProof);\n if (!clusterAnchoredTx) {\n throw new error_1.BlockAnchoringException();\n }\n const anchoringProof = yield anchoringClient.getConfirmationProof(clusterAnchoredTx.txRid);\n const intraNetworkProofTx = (0, utils_1.composeProofTransactionObject)(sourceBlockchainRid, verifiedTxHash, txProof, iccfTxSigners, clusterAnchoredTx, anchoringProof);\n return { iccfTx: intraNetworkProofTx, verifiedTx };\n }\n });\n}\n/**\n * Checks whether a given transaction is included in the cluster anchoring chain and returns the\n * block anchoring transaction. If `txProof` is not provided, it fetches the confirmation proof\n * using the `sourceClient`.\n *\n * @param sourceClient - A client configured to the blockchain where the transaction was made.\n * @param anchoringClient - The client responsible for querying the anchoring blockchain.\n * @param txRid - The transaction RID to check for anchoring.\n * @param txProof - (Optional) The transaction proof for the specified `txRid`.\n * @returns A Promise that resolves to the anchored transaction response object.\n */\nfunction getBlockAnchoringTransaction(sourceClient, anchoringClient, txRid, txProof) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!txRid && !txProof) {\n throw Error(\"Missing a txRid or TxProof\");\n }\n const confirmationProof = txProof !== null && txProof !== void 0 ? txProof : (txRid && (yield sourceClient.getConfirmationProof(txRid)));\n if (!confirmationProof) {\n throw Error(\"Confirmation proof not found\");\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const blockRid = (0, utils_1.calculateBlockRID)(confirmationProof, sourceClient.config.merkleHashVersion);\n const blockchainRid = sourceClient.config.blockchainRid;\n const anchoringTxResponse = yield (0, utils_1.awaitGetAnchoringTransactionForBlockRid)(anchoringClient, (0, formatter_1.toBuffer)(blockchainRid), blockRid, sourceClient.config.clusterAnchoringStatusPolling);\n return anchoringTxResponse;\n });\n}\n/**\n * Checks whether a given transaction is included in the anchoring blockchain.\n *\n * @param sourceClient - A client configured to the blockchain where the transaction was made.\n * @param anchoringClient - The client responsible for querying the anchoring blockchain.\n * @param txRid - The transaction RID to check for anchoring.\n * @param txProof - (Optional) The transaction proof for the specified `txRid`.\n * @returns A Promise that resolves to `true` if the transaction is anchored, `false` otherwise.\n */\nfunction isBlockAnchored(sourceClient, anchoringClient, txRid, txProof) {\n return __awaiter(this, void 0, void 0, function* () {\n return !!(yield getBlockAnchoringTransaction(sourceClient, anchoringClient, txRid, txProof));\n });\n}\n/**\n * Gets a client configured for the cluster anchoring blockchain of a cluster. Takes a specific\n * cluster name or blockchain RID to determine the cluster.\n * @param client - The client configured to communicate with the management chain.\n * @param dappBlockchainRid - (Optional) The RID of a blockchain which anchoring wants to be checked.\n * @param cluster - (Optional) The cluster of interest.\n * @returns A Promise that resolves to the client configured to a cluster anchoring chain.\n */\nfunction getAnchoringClient(client, dappBlockchainRid, cluster) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!dappBlockchainRid && !cluster) {\n throw Error(\"Missing a dapp blockchainRid or cluster name\");\n }\n const sourceCluster = cluster !== null && cluster !== void 0 ? cluster : (dappBlockchainRid && (yield (0, utils_1.getClusterOfBlockchain)(client, (0, formatter_1.ensureBuffer)(dappBlockchainRid))));\n if (!sourceCluster) {\n throw Error(\"No cluster could be found\");\n }\n const sourceClusterInfo = yield (0, utils_1.getClusterInfo)(client, sourceCluster);\n if (!sourceClusterInfo || !sourceClusterInfo.anchoring_chain) {\n throw Error(\"Cluster info could not be found\");\n }\n const networkSettings = Object.assign(Object.assign({}, client.config), { directoryNodeUrlPool: (0, utils_2.getUrlsFromEndpoints)(client.config.endpointPool), blockchainRid: (0, formatter_1.toString)(sourceClusterInfo.anchoring_chain) });\n const clientConfiguredToAnchoringchain = yield (0, blockchainClient_1.createClient)(networkSettings);\n return clientConfiguredToAnchoringchain;\n });\n}\n//# sourceMappingURL=IccfProofTxMaterialBuilder.js.map","\"use strict\";\n/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Web3EventEmitter = void 0;\nconst events_1 = require(\"events\");\nclass Web3EventEmitter {\n constructor() {\n this._emitter = new events_1.EventEmitter();\n }\n on(eventName, fn) {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n this._emitter.on(eventName, fn);\n }\n once(eventName, fn) {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n this._emitter.once(eventName, fn);\n }\n off(eventName, fn) {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n this._emitter.off(eventName, fn);\n }\n emit(eventName, params) {\n this._emitter.emit(eventName, params);\n }\n listenerCount(eventName) {\n return this._emitter.listenerCount(eventName);\n }\n listeners(eventName) {\n return this._emitter.listeners(eventName);\n }\n eventNames() {\n return this._emitter.eventNames();\n }\n removeAllListeners() {\n this._emitter.removeAllListeners();\n }\n setMaxListenerWarningThreshold(maxListenersWarningThreshold) {\n this._emitter.setMaxListeners(maxListenersWarningThreshold);\n }\n getMaxListeners() {\n return this._emitter.getMaxListeners();\n }\n}\nexports.Web3EventEmitter = Web3EventEmitter;\n//# sourceMappingURL=promiEventEmitter.js.map","\"use strict\";\n/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Web3PromiEvent = void 0;\nconst promiEventEmitter_1 = require(\"./promiEventEmitter\");\nclass Web3PromiEvent extends promiEventEmitter_1.Web3EventEmitter {\n constructor(executor) {\n super();\n // public tag to treat object as promise by different libs\n // eslint-disable-next-line @typescript-eslint/prefer-as-const\n this[_a] = \"Promise\";\n this._promise = new Promise(executor);\n }\n then(onfulfilled, onrejected) {\n return __awaiter(this, void 0, void 0, function* () {\n return this._promise.then(onfulfilled, onrejected);\n });\n }\n catch(onrejected) {\n return __awaiter(this, void 0, void 0, function* () {\n return this._promise.catch(onrejected);\n });\n }\n finally(onfinally) {\n return __awaiter(this, void 0, void 0, function* () {\n return this._promise.finally(onfinally);\n });\n }\n on(eventName, fn) {\n super.on(eventName, fn);\n return this;\n }\n once(eventName, fn) {\n super.once(eventName, fn);\n return this;\n }\n}\nexports.Web3PromiEvent = Web3PromiEvent;\n_a = Symbol.toStringTag;\n//# sourceMappingURL=promiEvents.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBlockIdentifierValid = exports.BlockIdentifierSchema = void 0;\nconst zod_1 = require(\"zod\");\nconst WRONG_STRING_LENGTH = \"wrong string length\";\nexports.BlockIdentifierSchema = zod_1.z.union([\n zod_1.z.string().refine(val => /^[0-9a-fA-F]{64}$/.test(val), WRONG_STRING_LENGTH),\n zod_1.z.number(),\n]);\nconst isBlockIdentifierValid = (blockIdentifier, options) => {\n const ctx = exports.BlockIdentifierSchema.safeParse(blockIdentifier);\n const { success } = ctx;\n const hasError = \"error\" in ctx;\n const { throwOnError = false } = options || {};\n if (!hasError) {\n return { success };\n }\n const { error } = ctx;\n const isInvalidInputType = error === null || error === void 0 ? void 0 : error.issues.some(({ code }) => code === \"invalid_union\");\n const isInvalidStringLength = error === null || error === void 0 ? void 0 : error.issues.some(({ message }) => message === WRONG_STRING_LENGTH);\n const message = (() => {\n if (isInvalidInputType) {\n return `Invalid \"blockIdentifier\" type. Expected string or number, but received ${typeof blockIdentifier}.`;\n }\n if (isInvalidStringLength) {\n return \"Parameter 'blockIdentifier' does not have the correct format (64-character hexadecimal string).\";\n }\n return error === null || error === void 0 ? void 0 : error.issues.map(issue => issue.message).join(\", \");\n })();\n if (throwOnError) {\n throw new Error(message);\n }\n return {\n success,\n error,\n message: error === null || error === void 0 ? void 0 : error.issues.map(issue => issue.message).join(\", \"),\n };\n};\nexports.isBlockIdentifierValid = isBlockIdentifierValid;\n//# sourceMappingURL=blockIdentifier.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNetworkSettingValid = exports.validateBlockChainIdentifier = void 0;\nconst zod_1 = require(\"zod\");\nconst enums_1 = require(\"../enums\");\nconst errors_1 = require(\"../errors\");\nconst IdentifierSchema = zod_1.z.union([\n zod_1.z.object({\n blockchainRid: zod_1.z.undefined(),\n blockchainIid: zod_1.z.number(),\n }),\n zod_1.z.object({\n blockchainRid: zod_1.z.string(),\n blockchainIid: zod_1.z.undefined(),\n }),\n]);\nconst NodeUrlSchema = zod_1.z.union([\n zod_1.z.object({\n nodeUrlPool: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]),\n directoryNodeUrlPool: zod_1.z.undefined(),\n }),\n zod_1.z.object({\n nodeUrlPool: zod_1.z.undefined(),\n directoryNodeUrlPool: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]),\n }),\n]);\nconst RestNetworkSettingsSchema = zod_1.z.object({\n statusPollingInterval: zod_1.z.number().optional(),\n statusPollingCount: zod_1.z.number().optional(),\n failOverConfig: zod_1.z\n .object({\n strategy: zod_1.z.nativeEnum(enums_1.FailoverStrategy).optional(),\n attemptsPerEndpoint: zod_1.z.number().optional(),\n attemptInterval: zod_1.z.number().optional(),\n unreachableDuration: zod_1.z.number().optional(),\n })\n .optional(),\n});\nconst validateBlockChainIdentifier = (networkSettings, options) => {\n const { throwOnError = false } = options || {};\n const identifierValidationContext = IdentifierSchema.safeParse(networkSettings);\n if (\"error\" in identifierValidationContext) {\n const missingBlockchainIdentifierError = new errors_1.MissingBlockchainIdentifierError();\n if (throwOnError) {\n throw missingBlockchainIdentifierError;\n }\n return {\n success: identifierValidationContext.success,\n error: identifierValidationContext.error,\n message: missingBlockchainIdentifierError.message,\n };\n }\n return { success: true };\n};\nexports.validateBlockChainIdentifier = validateBlockChainIdentifier;\nconst validateNodeUrl = (networkSettings, options) => {\n const { throwOnError = false } = options || {};\n const nodeUrlValidationContext = NodeUrlSchema.safeParse(networkSettings);\n if (\"error\" in nodeUrlValidationContext) {\n const missingNodeUrlError = new errors_1.MissingNodeUrlError();\n if (throwOnError) {\n throw missingNodeUrlError;\n }\n return {\n success: nodeUrlValidationContext.success,\n error: nodeUrlValidationContext.error,\n message: missingNodeUrlError.message,\n };\n }\n return { success: true };\n};\nconst validateRestNetworkSettings = (networkSettings, options) => {\n const { throwOnError = false } = options || {};\n const restNetworkSettingsValidationContext = RestNetworkSettingsSchema.safeParse(networkSettings);\n if (\"error\" in restNetworkSettingsValidationContext) {\n const { error: { issues } = {} } = restNetworkSettingsValidationContext;\n const errorMessage = issues === null || issues === void 0 ? void 0 : issues.map(({ message, path }) => `${path[0]}: ${message}`).join(\", \");\n if (throwOnError) {\n throw new Error(errorMessage);\n }\n return {\n success: restNetworkSettingsValidationContext.success,\n error: restNetworkSettingsValidationContext.error,\n message: errorMessage,\n };\n }\n return { success: true };\n};\nconst isNetworkSettingValid = (networkSettings, options) => {\n const identifierValidationContext = (0, exports.validateBlockChainIdentifier)(networkSettings, options);\n if (\"error\" in identifierValidationContext) {\n return identifierValidationContext;\n }\n const nodeUrlValidationContext = validateNodeUrl(networkSettings, options);\n if (\"error\" in nodeUrlValidationContext) {\n return nodeUrlValidationContext;\n }\n const restNetworkSettingsValidationContext = validateRestNetworkSettings(networkSettings, options);\n if (\"error\" in restNetworkSettingsValidationContext) {\n return restNetworkSettingsValidationContext;\n }\n return { success: true };\n};\nexports.isNetworkSettingValid = isNetworkSettingValid;\n//# sourceMappingURL=networkSettings.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isSignMethodValid = exports.SignMethodSchema = void 0;\nconst zod_1 = require(\"zod\");\nconst bufferSchema_1 = require(\"./bufferSchema\");\nconst KeyPairSchema = zod_1.z.object({\n privKey: bufferSchema_1.BufferSchema,\n pubKey: bufferSchema_1.BufferSchema,\n});\nconst SignatureProviderSchema = zod_1.z.object({\n pubKey: bufferSchema_1.BufferSchema,\n sign: zod_1.z.function().args(bufferSchema_1.BufferSchema).returns(zod_1.z.promise(bufferSchema_1.BufferSchema)),\n});\nexports.SignMethodSchema = zod_1.z.union([KeyPairSchema, SignatureProviderSchema]);\nconst isSignMethodValid = (signMethod, options) => {\n const signMethodValidationCtx = exports.SignMethodSchema.safeParse(signMethod);\n const { throwOnError = false } = options || {};\n const hasError = \"error\" in signMethodValidationCtx;\n if (!hasError) {\n return { success: true };\n }\n const message = \"Invalid sign method\";\n if (throwOnError) {\n throw new Error(message);\n }\n return {\n success: false,\n error: signMethodValidationCtx.error,\n message,\n };\n};\nexports.isSignMethodValid = isSignMethodValid;\n//# sourceMappingURL=signMethod.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateTransactionStatusReponse = validateTransactionStatusReponse;\nconst zod_1 = require(\"zod\");\nconst enums_1 = require(\"../enums\");\nconst statusEnum = zod_1.z.union([zod_1.z.nativeEnum(enums_1.ResponseStatus), zod_1.z.nativeEnum(enums_1.AnchoringStatus)]);\nconst transactionStatusReponseSchema = zod_1.z\n .object({\n statusCode: zod_1.z.number().nullable(),\n result: zod_1.z.object({\n status: statusEnum,\n rejectReason: zod_1.z.string().optional(),\n }),\n})\n .transform(({ statusCode, result }) => ({\n statusCode,\n status: result.status,\n rejectReason: result.rejectReason,\n}));\nfunction validateTransactionStatusReponse(input) {\n const result = transactionStatusReponseSchema.safeParse(input);\n if (!result.success) {\n throw new Error(\"Model does not match TransactionStatusReponse\");\n }\n return result.data;\n}\n//# sourceMappingURL=transactionStatusReponse.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createClient = createClient;\nconst crypto_1 = require(\"crypto\");\nconst cloneDeep_1 = __importDefault(require(\"lodash/cloneDeep\"));\nconst IccfProofTxMaterialBuilder_1 = require(\"../ICCF/IccfProofTxMaterialBuilder\");\nconst logger = __importStar(require(\"../logger\"));\nconst formatter_1 = require(\"../formatter\");\nconst serialization_1 = require(\"../gtx/serialization\");\nconst gtxTool = __importStar(require(\"../gtx/gtx\"));\nconst utils_1 = require(\"./utils\");\nconst promiEvents_1 = require(\"../promiEvent/promiEvents\");\nconst errors_1 = require(\"../gtx/errors\");\nconst enums_1 = require(\"./enums\");\nconst blockIdentifier_1 = require(\"./validation/blockIdentifier\");\nconst networkSettings_1 = require(\"./validation/networkSettings\");\nconst signMethod_1 = require(\"./validation/signMethod\");\nconst txRid_1 = require(\"./validation/txRid\");\nconst anchoringTransaction_1 = require(\"./validation/anchoringTransaction\");\nconst requests_1 = require(\"./validation/requests\");\nconst utils_2 = require(\"../ICCF/utils\");\nconst requestWithFailoverStrategy_1 = require(\"./requestWithFailoverStrategy\");\nconst transactionStatusReponse_1 = require(\"./validation/transactionStatusReponse\");\nfunction createClient(settings) {\n return __awaiter(this, void 0, void 0, function* () {\n (0, networkSettings_1.isNetworkSettingValid)(settings, { throwOnError: true });\n const config = yield (0, utils_1.getClientConfigFromSettings)(settings);\n config.merkleHashVersion = yield getMerkleHashVersion(settings);\n return {\n config,\n query(nameOrQueryObject, args, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n let _name, _args;\n if (typeof nameOrQueryObject === \"string\") {\n _name = nameOrQueryObject;\n _args = args;\n }\n else {\n _name = nameOrQueryObject === null || nameOrQueryObject === void 0 ? void 0 : nameOrQueryObject.name;\n _args = nameOrQueryObject === null || nameOrQueryObject === void 0 ? void 0 : nameOrQueryObject.args;\n }\n const { error, statusCode, rspBody } = yield (0, requestWithFailoverStrategy_1.requestWithFailoverStrategy)(enums_1.Method.POST, `query_gtv/${config.blockchainRid}`, config, (0, serialization_1.encodeValue)((0, formatter_1.toQueryObjectGTV)(_name, _args)));\n return new Promise((resolve, reject) => {\n (0, utils_1.handlePostResponse)(error, statusCode, (0, requests_1.isRawGtv)(rspBody), (0, utils_1.callbackPromiseBuilder)(reject, resolve, callback));\n });\n });\n },\n signTransaction(transaction, signMethod, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n logger.debug(`Signing transaction with ${!(0, utils_1.isKeyPair)(signMethod) ? \"signature provider containing \" : \"\"}pubKey: ${(0, formatter_1.toString)(signMethod.pubKey)}`);\n const gtx = (0, utils_1.getGTXFromBufferOrTransactionOrOperation)(transaction, config.blockchainRid);\n try {\n const signedTx = yield ((0, utils_1.isKeyPair)(signMethod)\n ? gtxTool.sign(gtx, signMethod.privKey, config.merkleHashVersion, signMethod.pubKey)\n : gtxTool.sign(gtx, signMethod, config.merkleHashVersion));\n const gtxBytes = (0, utils_1.getSerializedGTX)(signedTx);\n if (typeof callback === \"function\") {\n callback(null, gtxBytes);\n }\n return gtxBytes;\n }\n catch (error) {\n if (typeof callback === \"function\") {\n callback(error, null);\n }\n // Todo the error should be replaced with the custom error MissingSignerException\n throw new Error(error);\n }\n });\n },\n sendTransactionWithRetries(transaction, callback, confirmationLevel = enums_1.ChainConfirmationLevel.Dapp) {\n const client = this;\n function sendOnce() {\n return client.sendTransaction(transaction, true, callback, confirmationLevel);\n }\n const promiEvent = new promiEvents_1.Web3PromiEvent((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n let error = null;\n // await sleep(1000);\n for (let i = 0; i < config.retryTransactionPolling.count; i++) {\n logger.info(`sendTransactionWithRetries attempt ${i + 1} of ${config.retryTransactionPolling.count}`);\n const tmpPromiEvent = sendOnce()\n .on(enums_1.TransactionEvent.ClusterAnchoringConfirmation, receipt => {\n promiEvent.emit(enums_1.TransactionEvent.ClusterAnchoringConfirmation, receipt);\n })\n .on(enums_1.TransactionEvent.SystemAnchoringConfirmation, receipt => {\n promiEvent.emit(enums_1.TransactionEvent.SystemAnchoringConfirmation, receipt);\n })\n .on(enums_1.TransactionEvent.DappReceived, receipt => {\n promiEvent.emit(enums_1.TransactionEvent.DappReceived, receipt);\n })\n .on(enums_1.TransactionEvent.Signed, receipt => {\n promiEvent.emit(enums_1.TransactionEvent.Signed, receipt);\n })\n .on(enums_1.TransactionEvent.DappConfirmed, receipt => {\n promiEvent.emit(enums_1.TransactionEvent.DappConfirmed, receipt);\n })\n .catch(tmpError => {\n logger.warning(`sendTransactionWithRetries error on attempt ${i + 1} of ${config.retryTransactionPolling.count}: ${tmpError}`);\n promiEvent.emit(enums_1.TransactionEvent.Rejected, tmpError);\n error = tmpError;\n });\n const tmpReceipt = yield tmpPromiEvent;\n if (tmpReceipt) {\n resolve(tmpReceipt);\n return;\n }\n yield (0, utils_1.sleep)(config.retryTransactionPolling.interval);\n }\n reject(error);\n }));\n return promiEvent;\n },\n sendTransaction(transaction, doStatusPolling = true, callback, confirmationLevel = enums_1.ChainConfirmationLevel.Dapp) {\n const promiEvent = new promiEvents_1.Web3PromiEvent((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n try {\n const gtx = (0, utils_1.getGTXFromBufferOrTransactionOrOperation)(transaction, config.blockchainRid);\n if (gtx.signers.length !== ((_a = gtx.signatures) === null || _a === void 0 ? void 0 : _a.length)) {\n reject(new errors_1.NumberOfSignersAndSignaturesException());\n }\n const gtxBytes = (0, utils_1.getSerializedGTX)(gtx);\n const { error, statusCode, rspBody } = yield (0, requestWithFailoverStrategy_1.requestWithFailoverStrategy)(enums_1.Method.POST, `tx/${config.blockchainRid}`, config, gtxBytes);\n const transactionRid = gtxTool.getDigestToSign(gtx, config.merkleHashVersion);\n try {\n yield (0, utils_1.handlePostResponsePromisified)(error, statusCode, (0, requests_1.isRawGtv)(rspBody));\n if (typeof callback === \"function\") {\n callback(null, {\n status: enums_1.ResponseStatus.Waiting,\n statusCode,\n transactionRid: transactionRid,\n node: (_b = config.nodeManager.lastUsedNode) === null || _b === void 0 ? void 0 : _b.url,\n });\n }\n }\n catch (_error) {\n if (typeof callback === \"function\") {\n callback(_error, null);\n }\n return reject(_error);\n }\n const client = this;\n const statusPollingConfig = {\n dappStatusPolling: client.config.dappStatusPolling,\n clusterAnchoringStatusPolling: client.config.clusterAnchoringStatusPolling,\n systemAnchoringStatusPolling: client.config.systemAnchoringStatusPolling,\n };\n const stickyNodeClient = yield createStickyNodeClient(client); //to avoid false rejections by oblivious nodes\n let transactionReceipt = yield (0, utils_1.handleDappConfirmations)(transactionRid, doStatusPolling, confirmationLevel, promiEvent, statusPollingConfig.dappStatusPolling, () => stickyNodeClient.getTransactionStatus(transactionRid, callback), stickyNodeClient);\n if (confirmationLevel === enums_1.ChainConfirmationLevel.None ||\n confirmationLevel === enums_1.ChainConfirmationLevel.Dapp) {\n resolve(transactionReceipt);\n return;\n }\n const { anchoringClient, systemAnchoringChainBridString } = yield (0, utils_1.getAnchoringClientAndSystemChainRid)(client);\n transactionReceipt = yield (0, utils_1.handleSystemConfirmations)(transactionReceipt, confirmationLevel, promiEvent, statusPollingConfig, anchoringClient, systemAnchoringChainBridString, () => stickyNodeClient.getClusterAnchoringTransactionConfirmation(transactionRid, anchoringClient, callback), anchoredTxRid => stickyNodeClient.getSystemAnchoringTransactionConfirmation(anchoredTxRid, anchoringClient, systemAnchoringChainBridString, callback));\n resolve(transactionReceipt);\n }\n catch (error) {\n callback === null || callback === void 0 ? void 0 : callback(error, null);\n reject(error);\n }\n }));\n return promiEvent;\n },\n signAndSendUniqueTransaction(transactionOrOperation, signMethod, doStatusPolling = true, callback, confirmationLevel = enums_1.ChainConfirmationLevel.Dapp) {\n (0, signMethod_1.isSignMethodValid)(signMethod, { throwOnError: true });\n const promiEvent = new promiEvents_1.Web3PromiEvent((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const client = this;\n const transaction = \"name\" in transactionOrOperation\n ? {\n operations: [transactionOrOperation],\n signers: [signMethod.pubKey],\n }\n : transactionOrOperation;\n const hasNop = transaction.operations.some(operation => {\n return operation.name === \"nop\";\n });\n const transactionWithNop = hasNop ? transaction : client.addNop(transaction);\n try {\n const signedTx = yield client.signTransaction(transactionWithNop, signMethod);\n promiEvent.emit(enums_1.TransactionEvent.Signed, signedTx);\n const sendTransactionPromiEvent = client.sendTransaction(signedTx, doStatusPolling, callback, confirmationLevel);\n (0, utils_1.linkPromiEvents)(sendTransactionPromiEvent, promiEvent);\n resolve(yield sendTransactionPromiEvent);\n }\n catch (error) {\n reject(error);\n }\n }));\n return promiEvent;\n },\n getTransaction(transactionRid, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n (0, txRid_1.isTxRidValid)(transactionRid, { throwOnError: true });\n }\n catch (error) {\n callback === null || callback === void 0 ? void 0 : callback(error, null);\n throw error;\n }\n const { error, statusCode, rspBody } = yield (0, requestWithFailoverStrategy_1.requestWithFailoverStrategy)(enums_1.Method.GET, `tx/${config.blockchainRid}/${(0, formatter_1.ensureString)(transactionRid)}`, config);\n const transaction = (0, requests_1.isTransaction)(rspBody);\n return new Promise((resolve, reject) => {\n (0, utils_1.handleGetResponse)(error, statusCode, statusCode === 200 && transaction ? (0, formatter_1.toBuffer)(transaction.tx) : (0, requests_1.isRawGtv)(rspBody), (0, utils_1.callbackPromiseBuilder)(reject, resolve, callback));\n });\n });\n },\n getTransactionStatus(transactionRid, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n (0, txRid_1.isTxRidValid)(transactionRid, { throwOnError: true });\n }\n catch (error) {\n callback === null || callback === void 0 ? void 0 : callback(error, null);\n throw error;\n }\n const { error, statusCode, rspBody } = yield (0, requestWithFailoverStrategy_1.requestWithFailoverStrategy)(enums_1.Method.GET, `tx/${config.blockchainRid}/${transactionRid.toString(\"hex\")}/status`, config);\n return new Promise((resolve, reject) => {\n (0, utils_1.handleGetResponse)(error, statusCode, (0, requests_1.isRawGtv)(rspBody), (0, utils_1.callbackPromiseBuilder)(reject, result => resolve((0, transactionStatusReponse_1.validateTransactionStatusReponse)({\n statusCode,\n result,\n })), callback));\n });\n });\n },\n addNop(transaction) {\n const _transaction = (0, cloneDeep_1.default)(transaction);\n const noOperation = {\n name: \"nop\",\n args: [(0, crypto_1.randomBytes)(32)],\n };\n _transaction.operations = [..._transaction.operations, noOperation];\n return _transaction;\n },\n getTransactionsInfo() {\n return __awaiter(this, arguments, void 0, function* (limit = 25, beforeTime, callback, afterTime, signerPubKey) {\n const beforeTimeQueryParam = beforeTime ? `&before-time=${beforeTime.getTime()}` : \"\";\n const afterTimeQueryParam = afterTime ? `&after-time=${afterTime.getTime()}` : \"\";\n const signerQueryParam = signerPubKey ? `&signer=${signerPubKey}` : \"\";\n const { error, statusCode, rspBody } = yield (0, requestWithFailoverStrategy_1.requestWithFailoverStrategy)(enums_1.Method.GET, `transactions/${config.blockchainRid}?limit=${limit}${beforeTimeQueryParam}${afterTimeQueryParam}${signerQueryParam}`, config);\n const transactionsInfoResponseArray = (0, requests_1.isTransactionInfoResponseArray)(rspBody);\n const body = statusCode === 200 && transactionsInfoResponseArray\n ? transactionsInfoResponseArray.map(utils_1.formatTransactionInfoResponse)\n : rspBody;\n return new Promise((resolve, reject) => {\n (0, utils_1.handleGetResponse)(error, statusCode, (0, requests_1.isRawGtv)(body), (0, utils_1.callbackPromiseBuilder)(reject, resolve, callback));\n });\n });\n },\n getTransactionInfo(transactionRid, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n (0, txRid_1.isTxRidValid)(transactionRid, { throwOnError: true });\n }\n catch (error) {\n callback === null || callback === void 0 ? void 0 : callback(error, null);\n throw error;\n }\n const { error, statusCode, rspBody } = yield (0, requestWithFailoverStrategy_1.requestWithFailoverStrategy)(enums_1.Method.GET, `transactions/${config.blockchainRid}/${(0, formatter_1.ensureString)(transactionRid)}`, config);\n const transactionInfoResponse = (0, requests_1.isTransactionInfoResponse)(rspBody);\n const body = statusCode === 200 && transactionInfoResponse\n ? (0, utils_1.formatTransactionInfoResponse)(transactionInfoResponse)\n : rspBody;\n return new Promise((resolve, reject) => {\n (0, utils_1.handleGetResponse)(error, statusCode, (0, requests_1.isRawGtv)(body), (0, utils_1.callbackPromiseBuilder)(reject, resolve, callback));\n });\n });\n },\n getAnchoringStatusForBlockRid(blockRid, anchoringClient, systemAnchoringChainRid) {\n return __awaiter(this, void 0, void 0, function* () {\n const client = this;\n const result = { status: enums_1.AnchoringStatus.NotAnchored };\n const clusterAnchoredTx = yield (0, utils_2.awaitGetAnchoringTransactionForBlockRid)(anchoringClient, (0, formatter_1.ensureBuffer)(client.config.blockchainRid), (0, formatter_1.ensureBuffer)(blockRid), config.clusterAnchoringStatusPolling);\n if (!clusterAnchoredTx) {\n return result;\n }\n const anchoringTransactionValidation = anchoringTransaction_1.AnchoringTransactionSchema.safeParse(clusterAnchoredTx);\n if (!anchoringTransactionValidation.success) {\n return result;\n }\n result.status = enums_1.AnchoringStatus.ClusterAnchored;\n result.clusterAnchoredTx = anchoringTransactionValidation.data;\n const systemAnchoredTransaction = yield (0, utils_1.getSystemAnchoringTransaction)(config.endpointPool, anchoringTransactionValidation.data.txRid, anchoringClient, systemAnchoringChainRid, config.systemAnchoringStatusPolling, config.merkleHashVersion);\n if (!systemAnchoredTransaction) {\n return result;\n }\n result.status = enums_1.AnchoringStatus.SystemAnchored;\n result.systemAnchoredTx = systemAnchoredTransaction;\n return result;\n });\n },\n getTransactionConfirmationLevel(transactionRid, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n try {\n const client = this;\n const dappConfirmation = yield client.getTransactionStatus(transactionRid);\n const response = {\n status: dappConfirmation.status,\n statusCode: dappConfirmation.statusCode,\n transactionRid: (0, formatter_1.ensureBuffer)(transactionRid),\n node: (_a = client.config.nodeManager.lastUsedNode) === null || _a === void 0 ? void 0 : _a.url,\n };\n if (dappConfirmation.status === enums_1.ResponseStatus.Waiting) {\n return response;\n }\n let clusterAnchoringResult = null;\n if (dappConfirmation.status === enums_1.ResponseStatus.Confirmed) {\n const { anchoringClient, systemAnchoringChainBridString } = yield (0, utils_1.getAnchoringClientAndSystemChainRid)(client);\n clusterAnchoringResult = yield client.getClusterAnchoringTransactionConfirmation(transactionRid, anchoringClient);\n if (clusterAnchoringResult === enums_1.AnchoringStatus.NotAnchored || !clusterAnchoringResult) {\n return response;\n }\n if (clusterAnchoringResult === enums_1.AnchoringStatus.FailedAnchoring) {\n response.status = enums_1.AnchoringStatus.FailedAnchoring;\n response.statusCode = 400;\n return response;\n }\n const anchoringTransactionValidation = anchoringTransaction_1.AnchoringTransactionSchema.safeParse(clusterAnchoringResult);\n if (!anchoringTransactionValidation.success) {\n return response;\n }\n if (anchoringTransactionValidation.success) {\n response.status = enums_1.AnchoringStatus.ClusterAnchored;\n response.statusCode = 200;\n response.clusterAnchoredTx = anchoringTransactionValidation.data;\n response.clusterAnchoringClientBrid = anchoringClient.config.blockchainRid;\n const systemAnchoringResult = yield client.getSystemAnchoringTransactionConfirmation(anchoringTransactionValidation.data.txRid, anchoringClient, systemAnchoringChainBridString);\n if (!systemAnchoringResult) {\n return response;\n }\n response.status = enums_1.AnchoringStatus.SystemAnchored;\n response.systemAnchoredTx = systemAnchoringResult;\n response.systemAnchoringClientBrid = systemAnchoringChainBridString;\n return response;\n }\n }\n return response;\n }\n catch (error) {\n callback === null || callback === void 0 ? void 0 : callback(error, null);\n throw error;\n }\n });\n },\n getTransactionCount(callback) {\n return __awaiter(this, void 0, void 0, function* () {\n const { error, statusCode, rspBody } = yield (0, requestWithFailoverStrategy_1.requestWithFailoverStrategy)(enums_1.Method.GET, `transactions/${config.blockchainRid}/count`, config, undefined, true);\n const transactionsCount = (0, requests_1.isTransactionsCount)(rspBody);\n return new Promise((resolve, reject) => {\n (0, utils_1.handleGetResponse)(error, statusCode, statusCode === 200 ? transactionsCount === null || transactionsCount === void 0 ? void 0 : transactionsCount.transactionsCount : (0, requests_1.isRawGtv)(rspBody), (0, utils_1.callbackPromiseBuilder)(reject, resolve, callback));\n });\n });\n },\n getBlockInfo(blockIdentifier_2) {\n return __awaiter(this, arguments, void 0, function* (blockIdentifier, txs = false, callback) {\n (0, blockIdentifier_1.isBlockIdentifierValid)(blockIdentifier, { throwOnError: true });\n const queryString = typeof blockIdentifier === \"string\" ? blockIdentifier : `height/${blockIdentifier}`;\n const { error, statusCode, rspBody } = yield (0, requestWithFailoverStrategy_1.requestWithFailoverStrategy)(enums_1.Method.GET, `blocks/${config.blockchainRid}/${queryString}?txs=${txs}`, config);\n const blockInfoResponse = (0, requests_1.isBlockInfoResponse)(rspBody);\n return new Promise((resolve, reject) => {\n (0, utils_1.handleGetResponse)(error, statusCode, statusCode === 200 && blockInfoResponse !== null && blockInfoResponse\n ? (0, utils_1.formatBlockInfoResponse)(blockInfoResponse)\n : (0, requests_1.isRawGtv)(rspBody), (0, utils_1.callbackPromiseBuilder)(reject, resolve, callback));\n });\n });\n },\n getLatestBlock() {\n return __awaiter(this, arguments, void 0, function* (txs = false, callback) {\n const shouldIncludeFullTransaction = txs ? `&txs=${txs}` : \"\";\n const { error, statusCode, rspBody } = yield (0, requestWithFailoverStrategy_1.requestWithFailoverStrategy)(enums_1.Method.GET, `blocks/${config.blockchainRid}?limit=1${shouldIncludeFullTransaction}`, config, undefined, true);\n const indexOfLatestBlock = 0;\n const blockInfoResponseArray = (0, requests_1.isBlockInfoResponseArray)(rspBody);\n return new Promise((resolve, reject) => {\n (0, utils_1.handleGetResponse)(error, statusCode, statusCode === 200 && blockInfoResponseArray !== null && blockInfoResponseArray\n ? (0, utils_1.formatBlockInfoResponse)(blockInfoResponseArray[indexOfLatestBlock])\n : (0, requests_1.isRawGtv)(rspBody), (0, utils_1.callbackPromiseBuilder)(reject, resolve, callback));\n });\n });\n },\n getBlocks() {\n return __awaiter(this, arguments, void 0, function* ({ limit, beforeTime, afterTime, beforeHeight, afterHeight, excludeEmpty, txs, callback, } = {}) {\n const searchValues = {\n limit,\n txs,\n \"before-time\": beforeTime,\n \"after-time\": afterTime,\n \"before-height\": beforeHeight,\n \"after-height\": afterHeight,\n \"exclude-empty\": excludeEmpty,\n };\n const searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(searchValues)) {\n if (value !== undefined) {\n searchParams.append(key, value.toString());\n }\n }\n const { error, statusCode, rspBody } = yield (0, requestWithFailoverStrategy_1.requestWithFailoverStrategy)(enums_1.Method.GET, `blocks/${config.blockchainRid}?${searchParams}`, config);\n const blockInfoResponseArray = (0, requests_1.isBlockInfoResponseArray)(rspBody);\n return new Promise((resolve, reject) => {\n (0, utils_1.handleGetResponse)(error, statusCode, statusCode === 200 && blockInfoResponseArray\n ? blockInfoResponseArray.map(utils_1.formatBlockInfoResponse)\n : (0, requests_1.isRawGtv)(rspBody), (0, utils_1.callbackPromiseBuilder)(reject, resolve, callback));\n });\n });\n },\n getClientNodeUrlPool() {\n return config.endpointPool.map((endpoint) => endpoint.url);\n },\n /**\n * Retrieves a confirmation proof for a transaction with the specified sha256\n * hash.\n * @param txRid A buffer of 32 bytes\n * @param callback parameters (error, responseObjectProof) if first\n * parameter is not null, an error occurred.\n * If first parameter is null, then the second parameter is an object\n * like the following:\n *\n * {hash: messageHashBuffer,\n * blockHeader: blockHeaderBuffer,\n * signatures: [{pubKey: pubKeyBuffer, signature: sigBuffer}, ...],\n * merklePath: [{side: <0|1>, hash: <hash buffer level n-1>},\n * ...\n * {side: <0|1>, hash: <hash buffer level 1>}]}\n *\n * If no such transaction RID exists, the callback will be called with (null, null).\n *\n * The proof object can be validated using\n * postchain-common.util.validateMerklePath(proof.merklePath, proof.hash,\n * proof.blockHeader.slice(32, 64))\n *\n * The signatures must be validated agains some know trusted source for valid signers\n * at this specific block height.\n */\n getConfirmationProof(txRid, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n (0, txRid_1.isTxRidValid)(txRid, { throwOnError: true });\n }\n catch (error) {\n callback === null || callback === void 0 ? void 0 : callback(error, null);\n throw error;\n }\n const { error, statusCode, rspBody } = yield (0, requestWithFailoverStrategy_1.requestWithFailoverStrategy)(enums_1.Method.GET, `tx/${config.blockchainRid}/${(0, formatter_1.ensureString)(txRid)}/confirmationProof`, config);\n const confirmationProof = {\n merkleProofTree: \"\",\n txIndex: 0,\n };\n if (statusCode === 200) {\n try {\n const transactionConfirmationProof = (0, requests_1.isTransactionConfirmationProof)(rspBody);\n if (!transactionConfirmationProof) {\n throw error;\n }\n const decodedProof = (0, serialization_1.decodeValue)((0, formatter_1.toBuffer)(transactionConfirmationProof.proof));\n confirmationProof.txIndex = decodedProof.txIndex;\n confirmationProof.hash = decodedProof.hash;\n confirmationProof.blockHeader = decodedProof.blockHeader;\n confirmationProof.witness = decodedProof.witness;\n confirmationProof.merkleProofTree = decodedProof.merkleProofTree;\n }\n catch (decodeError) {\n if (callback) {\n callback(decodeError, null);\n }\n throw decodeError;\n }\n }\n return new Promise((resolve, reject) => {\n (0, utils_1.handleGetResponse)(error, statusCode, statusCode === 200 ? confirmationProof : (0, requests_1.isRawGtv)(rspBody), (0, utils_1.callbackPromiseBuilder)(reject, resolve, callback));\n });\n });\n },\n getClusterAnchoringTransactionConfirmation(transactionRid, anchoringClient, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n (0, txRid_1.isTxRidValid)(transactionRid, { throwOnError: true });\n }\n catch (error) {\n callback === null || callback === void 0 ? void 0 : callback(error, null);\n throw error;\n }\n const client = this;\n try {\n let confirmationProof;\n try {\n confirmationProof = yield client.getConfirmationProof(transactionRid);\n }\n catch (error) {\n callback === null || callback === void 0 ? void 0 : callback(error, null);\n return enums_1.AnchoringStatus.NotAnchored;\n }\n const anchoringTransaction = yield (0, IccfProofTxMaterialBuilder_1.getBlockAnchoringTransaction)(client, anchoringClient, transactionRid, confirmationProof);\n if (!anchoringTransaction)\n return enums_1.AnchoringStatus.NotAnchored;\n return anchoringTransaction;\n }\n catch (error) {\n callback === null || callback === void 0 ? void 0 : callback(error, null);\n return enums_1.AnchoringStatus.FailedAnchoring;\n }\n });\n },\n getSystemAnchoringTransactionConfirmation(anchoredTxRid, anchoringClient, systemAnchoringChainRid, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n (0, txRid_1.isTxRidValid)(anchoredTxRid, { throwOnError: true });\n }\n catch (error) {\n callback === null || callback === void 0 ? void 0 : callback(error, null);\n throw error;\n }\n const systemAnchoringTransactionTransaction = yield (0, utils_1.getSystemAnchoringTransaction)(config.endpointPool, anchoredTxRid, anchoringClient, systemAnchoringChainRid, config.systemAnchoringStatusPolling, config.merkleHashVersion);\n return systemAnchoringTransactionTransaction;\n });\n },\n getWaitingTransactions(blockchainRid, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n const { error, statusCode, rspBody } = yield (0, requestWithFailoverStrategy_1.requestWithFailoverStrategy)(enums_1.Method.GET, `/tx/${(0, formatter_1.ensureString)(blockchainRid)}/waiting`, config);\n return new Promise((resolve, reject) => {\n (0, utils_1.handleGetResponse)(error, statusCode, (0, requests_1.isRawGtv)(rspBody), (0, utils_1.callbackPromiseBuilder)(reject, resolve, callback));\n });\n });\n },\n getWaitingTransaction(blockchainRid, txRid, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n const { error, statusCode, rspBody, transactionTimestamp } = yield (0, requestWithFailoverStrategy_1.requestWithFailoverStrategy)(enums_1.Method.GET, `/tx/${(0, formatter_1.ensureString)(blockchainRid)}/waiting/${(0, formatter_1.ensureString)(txRid)}`, config);\n const transaction = (0, requests_1.isTransaction)(rspBody);\n const result = transaction ? (0, formatter_1.toBuffer)(transaction.tx) : (0, requests_1.isRawGtv)(rspBody);\n return new Promise((resolve, reject) => {\n (0, utils_1.handleGetResponse)(error, statusCode, result, (0, utils_1.callbackPromiseBuilder)(reject, txData => resolve({\n txData: (0, requests_1.isRawGtv)(txData),\n transactionTimestamp: Number(transactionTimestamp),\n }), callback));\n });\n });\n },\n getRejectedTransactions(blockchainRid, callback) {\n return __awaiter(this, void 0, void 0, function* () {\n const { error, statusCode, rspBody } = yield (0, requestWithFailoverStrategy_1.requestWithFailoverStrategy)(enums_1.Method.GET, `/tx/${(0, formatter_1.ensureString)(blockchainRid)}/rejected`, config);\n const rejectedTransactionsArray = (0, requests_1.isRejectedTransactionResponseArray)(rspBody);\n const validResponseBody = statusCode === 200 && rejectedTransactionsArray\n ? rejectedTransactionsArray.map(rejectedTransaction => (0, utils_1.formatRejectedTransactionFromResponse)(rejectedTransaction))\n : rspBody;\n return new Promise((resolve, reject) => {\n (0, utils_1.handleGetResponse)(error, statusCode, (0, requests_1.isRawGtv)(validResponseBody), (0, utils_1.callbackPromiseBuilder)(reject, resolve, callback));\n });\n });\n },\n /**\n * Get app structure. Returns list of app modules in JSON format\n * @param callback - leverages error-first pattern and called when promise resolves\n */\n getAppStructure(callback) {\n return __awaiter(this, void 0, void 0, function* () {\n const { error, statusCode, rspBody } = yield (0, requestWithFailoverStrategy_1.requestWithFailoverStrategy)(enums_1.Method.GET, `/query/${config.blockchainRid}?type=rell.get_app_structure`, config);\n return new Promise((resolve, reject) => {\n (0, utils_1.handleGetResponse)(error, statusCode, (0, requests_1.isRawGtv)(rspBody), (0, utils_1.callbackPromiseBuilder)(reject, resolve, callback));\n });\n });\n },\n };\n function getMerkleHashVersion(settings) {\n return __awaiter(this, void 0, void 0, function* () {\n let merkleHashVersion;\n if (settings.merkleHashVersion !== undefined) {\n merkleHashVersion = settings.merkleHashVersion;\n }\n else {\n merkleHashVersion = yield (0, utils_1.getMerkleHashVersionFromDapp)(config);\n }\n return merkleHashVersion;\n });\n }\n function createStickyNodeClient(client) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n if (!client.config.nodeManager.lastUsedNode) {\n throw new Error(\"No last used node found; cannot create sticky node client\");\n }\n const stickyNodeClient = yield createClient({\n nodeUrlPool: (_a = client.config.nodeManager.lastUsedNode) === null || _a === void 0 ? void 0 : _a.url,\n blockchainRid: client.config.blockchainRid,\n merkleHashVersion: client.config.merkleHashVersion,\n useStickyNode: true,\n });\n return stickyNodeClient;\n });\n }\n });\n}\n//# sourceMappingURL=blockchainClient.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createStubClient = createStubClient;\nconst enums_1 = require(\"./enums\");\nconst promiEvents_1 = require(\"../promiEvent/promiEvents\");\nconst nodeManager_1 = require(\"./nodeManager\");\nconst utils_1 = require(\"./utils\");\nconst constants_1 = require(\"../utils/constants\");\nfunction createStubClient() {\n return __awaiter(this, void 0, void 0, function* () {\n return {\n config: {\n merkleHashVersion: constants_1.MERKLE_HASH_VERSIONS.ONE,\n nodeManager: (0, nodeManager_1.createNodeManager)({\n nodeUrls: [],\n }),\n endpointPool: [],\n blockchainRid: \"0000000000000000000000000000000000000000000000000000000000000000\",\n dappStatusPolling: (0, utils_1.setStatusPolling)({ interval: 5000, count: 5 }),\n clusterAnchoringStatusPolling: (0, utils_1.setStatusPolling)(),\n systemAnchoringStatusPolling: (0, utils_1.setStatusPolling)(),\n retryTransactionPolling: (0, utils_1.setRetryTransactionPolling)(),\n failoverStrategy: enums_1.FailoverStrategy.AbortOnError,\n attemptsPerEndpoint: 3,\n attemptInterval: 5000,\n unreachableDuration: 30000,\n directoryChainRid: \"1111111111111111111111111111111111111111111111111111111111111111\",\n connectTimeout: 1000,\n responseTimeout: 1000,\n },\n query() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"query rejected\");\n });\n },\n signTransaction() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"signTransaction rejected\");\n });\n },\n sendTransaction() {\n return new promiEvents_1.Web3PromiEvent((_resolve, reject) => reject(\"sendTransaction rejected\"));\n },\n sendTransactionWithRetries() {\n return new promiEvents_1.Web3PromiEvent((_resolve, reject) => reject(\"sendTransactionWithRetries rejected\"));\n },\n signAndSendUniqueTransaction() {\n return new promiEvents_1.Web3PromiEvent((_resolve, reject) => reject(\"signAndSendUniqueTransaction rejected\"));\n },\n getTransaction() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getTransaction rejected\");\n });\n },\n getTransactionStatus() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getTransactionStatus rejected\");\n });\n },\n addNop() {\n throw new Error(\"addNop error\");\n },\n getTransactionsInfo() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getTransactionsInfo rejected\");\n });\n },\n getTransactionInfo() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getTransactionInfo rejected\");\n });\n },\n getAnchoringStatusForBlockRid() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getAnchoringStatusForBlockRid rejected\");\n });\n },\n getTransactionConfirmationLevel() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getTransactionConfirmationLevel rejected\");\n });\n },\n getTransactionCount() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getTransactionCount rejected\");\n });\n },\n getBlocks() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getBlockInfo rejected\");\n });\n },\n getBlockInfo() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getBlockInfo rejected\");\n });\n },\n getLatestBlock() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getLatestBlock rejected\");\n });\n },\n getClientNodeUrlPool() {\n return [];\n },\n getConfirmationProof() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getConfirmationProof rejected\");\n });\n },\n getClusterAnchoringTransactionConfirmation() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getClusterAnchoringTransactionConfirmation rejected\");\n });\n },\n getSystemAnchoringTransactionConfirmation() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getSystemAnchoringTransactionConfirmation rejected\");\n });\n },\n getAppStructure() {\n return Promise.reject(\"getAppStructure rejected\");\n },\n getWaitingTransactions() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getWaitingTransactions rejected\");\n });\n },\n getWaitingTransaction() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getWaitingTransaction rejected\");\n });\n },\n getRejectedTransactions() {\n return __awaiter(this, void 0, void 0, function* () {\n return Promise.reject(\"getRejectedTransactions rejected\");\n });\n },\n };\n });\n}\n//# sourceMappingURL=clientStub.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateTransactionRid = calculateTransactionRid;\nconst errors_1 = require(\"../blockchainClient/errors\");\nconst gtx_1 = require(\"../gtx/gtx\");\n/**\n * Calculates and returns the transaction RID, i.e., the merkle root hash of the transaction.\n * @param transaction The transaction in format of RawGtxBody\n *\n */\nfunction calculateTransactionRid(transaction, merkleHashVersion) {\n try {\n return (0, gtx_1.getDigestToSignFromRawGtxBody)(transaction, merkleHashVersion);\n }\n catch (error) {\n throw new errors_1.GetTransactionRidException(error);\n }\n}\n//# sourceMappingURL=calculateTransactionRid.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dumpGtx = dumpGtx;\nexports.dumpGtv = dumpGtv;\nconst buffer_1 = require(\"buffer\");\nconst __1 = require(\"../..\");\nfunction dumpGtx(gtxTx) {\n var _a;\n return `blockchainRid:\\n${__1.formatter.toString(gtxTx.blockchainRid)}\\n\noperations:\n${gtxTx.operations.map(op => ` - ${op.opName}(${op.args.map(dumpGtv).join(\", \")})\\n`).join(\"\")}\nsigners:\n${gtxTx.signers.map(s => ` - ${__1.formatter.toString(s)}\\n`).join(\"\")}\nsignatures:\n${(_a = gtxTx.signatures) === null || _a === void 0 ? void 0 : _a.map(s => ` - ${__1.formatter.toString(s)}\\n`).join(\"\")}`;\n}\nfunction dumpGtv(rawGtv) {\n return JSON.stringify(rawGtv, (_key, value) => {\n if (typeof value === \"bigint\") {\n return `${value.toString()}L`;\n }\n if (buffer_1.Buffer.isBuffer(value)) {\n return __1.formatter.toString(value);\n }\n if (typeof value === \"object\" &&\n value !== null &&\n value.type === \"Buffer\" &&\n Array.isArray(value.data)) {\n return `0x${value.data}`;\n }\n return value;\n });\n}\n//# sourceMappingURL=dump.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeTransactionToGtx = decodeTransactionToGtx;\nconst gtxTool = __importStar(require(\"../gtx/gtx\"));\nconst logger = __importStar(require(\"../logger\"));\nconst dump_1 = require(\"./dump\");\n/**\n * Decodes the transaction using ASN.1.\n * @returns the transaction decoded in GTX format\n */\nfunction decodeTransactionToGtx(encodedTransaction) {\n const gtx = gtxTool.deserialize(encodedTransaction);\n logger.debug(`Output from deserializing a raw transaction: ${(0, dump_1.dumpGtv)(gtx)}`);\n return gtx;\n}\n//# sourceMappingURL=decodeTransactionToGtx.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MERKLE_HASH_VERSIONS = exports.isTransactionInfoArray = exports.isTransactionInfo = exports.isTransactionInfoResponseArray = exports.isTransactionInfoResponse = exports.isConfirmationProof = exports.isTransactionConfirmationProof = exports.isTransactionsCount = exports.isTransaction = exports.isBlockInfoResponseArray = exports.isBlockInfoResponse = exports.isTransactionInfoInBlockResponseArray = exports.isTransactionInfoInBlockResponse = exports.isRawGtv = exports.isDictPair = exports.isString = exports.setStatusPolling = exports.getSystemAnchoringTransaction = exports.getAnchoringClientAndSystemChainRid = exports.getSystemAnchoringChain = exports.getSystemClient = exports.convertToRellOperation = exports.CustomError = exports.Web3PromiEvent = exports.TransactionEvent = exports.ChainConfirmationLevel = exports.AnchoringStatus = exports.ResponseStatus = exports.FailoverStrategy = exports.requestWithFailoverStrategy = exports.dumpGtv = exports.dumpGtx = exports.decodeTransactionToGtx = exports.encodeTransaction = exports.calculateTransactionRid = exports.getAnchoringClient = exports.getBlockAnchoringTransaction = exports.isBlockAnchored = exports.createIccfProofTx = exports.getDigestToSignFromRawGtxBody = exports.newSignatureProvider = exports.createStubClient = exports.createClient = exports.encryption = exports.logger = exports.gtx = exports.formatter = exports.gtv = exports.Buffer = void 0;\nvar buffer_1 = require(\"buffer\");\nObject.defineProperty(exports, \"Buffer\", { enumerable: true, get: function () { return buffer_1.Buffer; } });\nexports.gtv = __importStar(require(\"./src/gtv/index\"));\nexports.formatter = __importStar(require(\"./src/formatter\"));\nexports.gtx = __importStar(require(\"./src/gtx/gtx\"));\nexports.logger = __importStar(require(\"./src/logger\"));\nexports.encryption = __importStar(require(\"./src/encryption/encryption\"));\nvar blockchainClient_1 = require(\"./src/blockchainClient/blockchainClient\");\nObject.defineProperty(exports, \"createClient\", { enumerable: true, get: function () { return blockchainClient_1.createClient; } });\nvar clientStub_1 = require(\"./src/blockchainClient/clientStub\");\nObject.defineProperty(exports, \"createStubClient\", { enumerable: true, get: function () { return clientStub_1.createStubClient; } });\nvar gtx_1 = require(\"./src/gtx/gtx\");\nObject.defineProperty(exports, \"newSignatureProvider\", { enumerable: true, get: function () { return gtx_1.newSignatureProvider; } });\nObject.defineProperty(exports, \"getDigestToSignFromRawGtxBody\", { enumerable: true, get: function () { return gtx_1.getDigestToSignFromRawGtxBody; } });\nvar IccfProofTxMaterialBuilder_1 = require(\"./src/ICCF/IccfProofTxMaterialBuilder\");\nObject.defineProperty(exports, \"createIccfProofTx\", { enumerable: true, get: function () { return IccfProofTxMaterialBuilder_1.createIccfProofTx; } });\nObject.defineProperty(exports, \"isBlockAnchored\", { enumerable: true, get: function () { return IccfProofTxMaterialBuilder_1.isBlockAnchored; } });\nObject.defineProperty(exports, \"getBlockAnchoringTransaction\", { enumerable: true, get: function () { return IccfProofTxMaterialBuilder_1.getBlockAnchoringTransaction; } });\nObject.defineProperty(exports, \"getAnchoringClient\", { enumerable: true, get: function () { return IccfProofTxMaterialBuilder_1.getAnchoringClient; } });\nvar calculateTransactionRid_1 = require(\"./src/utils/calculateTransactionRid\");\nObject.defineProperty(exports, \"calculateTransactionRid\", { enumerable: true, get: function () { return calculateTransactionRid_1.calculateTransactionRid; } });\nvar encodeTransaction_1 = require(\"./src/utils/encodeTransaction\");\nObject.defineProperty(exports, \"encodeTransaction\", { enumerable: true, get: function () { return encodeTransaction_1.encodeTransaction; } });\nvar decodeTransactionToGtx_1 = require(\"./src/utils/decodeTransactionToGtx\");\nObject.defineProperty(exports, \"decodeTransactionToGtx\", { enumerable: true, get: function () { return decodeTransactionToGtx_1.decodeTransactionToGtx; } });\nvar dump_1 = require(\"./src/utils/dump\");\nObject.defineProperty(exports, \"dumpGtx\", { enumerable: true, get: function () { return dump_1.dumpGtx; } });\nObject.defineProperty(exports, \"dumpGtv\", { enumerable: true, get: function () { return dump_1.dumpGtv; } });\nvar requestWithFailoverStrategy_1 = require(\"./src/blockchainClient/requestWithFailoverStrategy\");\nObject.defineProperty(exports, \"requestWithFailoverStrategy\", { enumerable: true, get: function () { return requestWithFailoverStrategy_1.requestWithFailoverStrategy; } });\nvar enums_1 = require(\"./src/blockchainClient/enums\");\nObject.defineProperty(exports, \"FailoverStrategy\", { enumerable: true, get: function () { return enums_1.FailoverStrategy; } });\nObject.defineProperty(exports, \"ResponseStatus\", { enumerable: true, get: function () { return enums_1.ResponseStatus; } });\nObject.defineProperty(exports, \"AnchoringStatus\", { enumerable: true, get: function () { return enums_1.AnchoringStatus; } });\nObject.defineProperty(exports, \"ChainConfirmationLevel\", { enumerable: true, get: function () { return enums_1.ChainConfirmationLevel; } });\nObject.defineProperty(exports, \"TransactionEvent\", { enumerable: true, get: function () { return enums_1.TransactionEvent; } });\nvar promiEvents_1 = require(\"./src/promiEvent/promiEvents\");\nObject.defineProperty(exports, \"Web3PromiEvent\", { enumerable: true, get: function () { return promiEvents_1.Web3PromiEvent; } });\nvar customError_1 = require(\"./src/customError\");\nObject.defineProperty(exports, \"CustomError\", { enumerable: true, get: function () { return customError_1.CustomError; } });\nvar utils_1 = require(\"./src/blockchainClient/utils\");\nObject.defineProperty(exports, \"convertToRellOperation\", { enumerable: true, get: function () { return utils_1.convertToRellOperation; } });\nObject.defineProperty(exports, \"getSystemClient\", { enumerable: true, get: function () { return utils_1.getSystemClient; } });\nObject.defineProperty(exports, \"getSystemAnchoringChain\", { enumerable: true, get: function () { return utils_1.getSystemAnchoringChain; } });\nObject.defineProperty(exports, \"getAnchoringClientAndSystemChainRid\", { enumerable: true, get: function () { return utils_1.getAnchoringClientAndSystemChainRid; } });\nObject.defineProperty(exports, \"getSystemAnchoringTransaction\", { enumerable: true, get: function () { return utils_1.getSystemAnchoringTransaction; } });\nObject.defineProperty(exports, \"setStatusPolling\", { enumerable: true, get: function () { return utils_1.setStatusPolling; } });\nvar requests_1 = require(\"./src/blockchainClient/validation/requests\");\nObject.defineProperty(exports, \"isString\", { enumerable: true, get: function () { return requests_1.isString; } });\nObject.defineProperty(exports, \"isDictPair\", { enumerable: true, get: function () { return requests_1.isDictPair; } });\nObject.defineProperty(exports, \"isRawGtv\", { enumerable: true, get: function () { return requests_1.isRawGtv; } });\nObject.defineProperty(exports, \"isTransactionInfoInBlockResponse\", { enumerable: true, get: function () { return requests_1.isTransactionInfoInBlockResponse; } });\nObject.defineProperty(exports, \"isTransactionInfoInBlockResponseArray\", { enumerable: true, get: function () { return requests_1.isTransactionInfoInBlockResponseArray; } });\nObject.defineProperty(exports, \"isBlockInfoResponse\", { enumerable: true, get: function () { return requests_1.isBlockInfoResponse; } });\nObject.defineProperty(exports, \"isBlockInfoResponseArray\", { enumerable: true, get: function () { return requests_1.isBlockInfoResponseArray; } });\nObject.defineProperty(exports, \"isTransaction\", { enumerable: true, get: function () { return requests_1.isTransaction; } });\nObject.defineProperty(exports, \"isTransactionsCount\", { enumerable: true, get: function () { return requests_1.isTransactionsCount; } });\nObject.defineProperty(exports, \"isTransactionConfirmationProof\", { enumerable: true, get: function () { return requests_1.isTransactionConfirmationProof; } });\nObject.defineProperty(exports, \"isConfirmationProof\", { enumerable: true, get: function () { return requests_1.isConfirmationProof; } });\nObject.defineProperty(exports, \"isTransactionInfoResponse\", { enumerable: true, get: function () { return requests_1.isTransactionInfoResponse; } });\nObject.defineProperty(exports, \"isTransactionInfoResponseArray\", { enumerable: true, get: function () { return requests_1.isTransactionInfoResponseArray; } });\nObject.defineProperty(exports, \"isTransactionInfo\", { enumerable: true, get: function () { return requests_1.isTransactionInfo; } });\nObject.defineProperty(exports, \"isTransactionInfoArray\", { enumerable: true, get: function () { return requests_1.isTransactionInfoArray; } });\nvar constants_1 = require(\"./src/utils/constants\");\nObject.defineProperty(exports, \"MERKLE_HASH_VERSIONS\", { enumerable: true, get: function () { return constants_1.MERKLE_HASH_VERSIONS; } });\n__exportStar(require(\"./src/blockchainClient/errors\"), exports);\n__exportStar(require(\"./src/gtx/errors\"), exports);\n__exportStar(require(\"./src/encryption/errors\"), exports);\n__exportStar(require(\"./src/ICCF/error\"), exports);\n//# sourceMappingURL=index.js.map","import { getDefaultExportFromCjs } from \"\u0000commonjsHelpers.js\";\nimport { __require as requireBuilt } from \"/opt/atlassian/pipelines/agent/build/built/index.js\";\nvar builtExports = requireBuilt();\nexport { builtExports as __moduleExports };export default /*@__PURE__*/getDefaultExportFromCjs(builtExports);"],"names":["errors","customError_1","require$$0","buffer_1","zod_1","require$$1","bufferSchema","bufferUtils_1","require$$2","serialization","errors_1","require$$3","formatter_1","require$$4","__createBinding","this","__setModuleDefault","__importStar","gtv","constants_1","encode","decode","__awaiter","gtx","require$$5","require$$6","_a","logger_1","error","logger","encodeTransaction_1","gtx_1","enums_1","requestWithFailoverStrategy_1","requestWithFailoverStrategy","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","utils","require$$18","require$$19","calculateTransactionRid_1","decodeTransactionToGtx_1","decodeTransactionToGtx","require$$20","require$$21","require$$22","require$$23"],"mappings":"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"}
|