postchain-client 2.1.3 → 2.1.5

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.
@@ -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","../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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"}
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.FilteredNodeUrlPoolEmptyError = 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 FilteredNodeUrlPoolEmptyError extends customError_1.CustomError {\n constructor(poolName) {\n super(`All node URLs were filtered out for pool \"${poolName}\". Update node URL filters or pool configuration.`, 400);\n }\n}\nexports.FilteredNodeUrlPoolEmptyError = FilteredNodeUrlPoolEmptyError;\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 Object.assign(Object.assign(Object.assign({ endpointPool, nodeManager: nodeManager }, (settings.blockedNodeUrlSubstrings !== undefined\n ? { blockedNodeUrlSubstrings: settings.blockedNodeUrlSubstrings }\n : {})), (settings.nodeUrlFilter !== undefined ? { nodeUrlFilter: settings.nodeUrlFilter } : {})), { blockchainRid: blockchainRidToUse, merkleHashVersion: (_e = settings.merkleHashVersion) !== null && _e !== void 0 ? _e : constants_1.MERKLE_HASH_VERSIONS.UNSET, dappStatusPolling: setStatusPolling(settings.dappStatusPolling), clusterAnchoringStatusPolling: setStatusPolling(settings.clusterAnchoringStatusPolling), systemAnchoringStatusPolling: setStatusPolling(settings.systemAnchoringStatusPolling), retryTransactionPolling: setRetryTransactionPolling(settings.retryTransactionPolling), failoverStrategy: ((_f = settings.failOverConfig) === null || _f === void 0 ? void 0 : _f.strategy) || exports.defaultFailoverConfig.strategy, attemptsPerEndpoint: ((_g = settings.failOverConfig) === null || _g === void 0 ? void 0 : _g.attemptsPerEndpoint) || exports.defaultFailoverConfig.attemptsPerEndpoint, attemptInterval: ((_h = settings.failOverConfig) === null || _h === void 0 ? void 0 : _h.attemptInterval) || exports.defaultFailoverConfig.attemptInterval, unreachableDuration: ((_j = settings.failOverConfig) === null || _j === void 0 ? void 0 : _j.unreachableDuration) || exports.defaultFailoverConfig.unreachableDuration, directoryChainRid: settings.directoryChainRid || directoryChainRid, connectTimeout: settings.connectTimeout, responseTimeout: settings.responseTimeout });\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, blockedNodeUrlSubstrings, nodeUrlFilter, 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 const discoveredNodes = yield getBlockchainApiUrls(D1Client, (0, formatter_1.ensureBuffer)(blockchainRidToUse));\n return applyNodeUrlFilters(discoveredNodes, {\n blockedNodeUrlSubstrings,\n nodeUrlFilter,\n }, \"discoveredNodeUrlPool\");\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 const directoryNodeUrlsOrNull = applyNodeUrlFilters(ensureArray(settings.directoryNodeUrlPool), settings, \"directoryNodeUrlPool\");\n if (directoryNodeUrlsOrNull === null) {\n throw new errors_2.DirectoryNodeUrlPoolException();\n }\n const directoryNodeUrls = directoryNodeUrlsOrNull;\n // If directoryNodeUrlPool is provided, use nodeDiscovery\n const nodeManager = (0, nodeManager_1.createNodeManager)({\n nodeUrls: directoryNodeUrls,\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)(directoryNodeUrls),\n blockedNodeUrlSubstrings: settings.blockedNodeUrlSubstrings,\n nodeUrlFilter: settings.nodeUrlFilter,\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 applyNodeUrlFilters([settings.nodeUrlPool], settings, \"nodeUrlPool\");\n }\n else if (Array.isArray(settings.nodeUrlPool)) {\n // If nodeUrlPool is already an array, use it as-is\n return applyNodeUrlFilters(settings.nodeUrlPool, settings, \"nodeUrlPool\");\n }\n else {\n // Default to an empty array if no valid configuration is provided\n return [];\n }\n });\n}\nfunction applyNodeUrlFilters(nodeUrls, settings, poolName) {\n var _a;\n if (nodeUrls === null) {\n return null;\n }\n const hasBlockedSubstringsFilter = Array.isArray(settings.blockedNodeUrlSubstrings) &&\n settings.blockedNodeUrlSubstrings.length > 0;\n const hasNodeUrlFilter = typeof settings.nodeUrlFilter === \"function\";\n if (!hasBlockedSubstringsFilter && !hasNodeUrlFilter) {\n return nodeUrls;\n }\n const blockedSubstrings = ((_a = settings.blockedNodeUrlSubstrings) !== null && _a !== void 0 ? _a : [])\n .map(substring => substring.toLowerCase())\n .filter(substring => substring.length > 0);\n const filteredNodeUrls = nodeUrls.filter(url => {\n const isBlockedBySubstring = blockedSubstrings.some(substring => url.toLowerCase().includes(substring));\n const passesCustomFilter = settings.nodeUrlFilter ? settings.nodeUrlFilter(url) : true;\n return !isBlockedBySubstring && passesCustomFilter;\n });\n if (filteredNodeUrls.length === 0) {\n throw new errors_2.FilteredNodeUrlPoolEmptyError(poolName);\n }\n return filteredNodeUrls;\n}\nfunction getSystemClient(directoryNodeUrlPool, directoryChainRid, blockedNodeUrlSubstrings, nodeUrlFilter) {\n return __awaiter(this, void 0, void 0, function* () {\n return yield (0, blockchainClient_1.createClient)({\n directoryNodeUrlPool,\n blockchainRid: directoryChainRid,\n blockedNodeUrlSubstrings,\n nodeUrlFilter,\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, client.config.blockedNodeUrlSubstrings, client.config.nodeUrlFilter);\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, blockedNodeUrlSubstrings, nodeUrlFilter) {\n return __awaiter(this, void 0, void 0, function* () {\n const systemAnchoringChainClient = yield getSystemClient((0, exports.getUrlsFromEndpoints)(dappClientEndpointPool), systemAnchoringChainRid, blockedNodeUrlSubstrings, nodeUrlFilter);\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 blockedNodeUrlSubstrings: directoryClient.config.blockedNodeUrlSubstrings,\n nodeUrlFilter: directoryClient.config.nodeUrlFilter,\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 blockedNodeUrlSubstrings: directoryClient.config.blockedNodeUrlSubstrings,\n nodeUrlFilter: directoryClient.config.nodeUrlFilter,\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, config.blockedNodeUrlSubstrings, config.nodeUrlFilter);\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, config.blockedNodeUrlSubstrings, config.nodeUrlFilter);\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 blockedNodeUrlSubstrings: client.config.blockedNodeUrlSubstrings,\n nodeUrlFilter: client.config.nodeUrlFilter,\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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"}