postchain-client 1.22.0 → 2.0.1

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.
Files changed (398) hide show
  1. package/README.md +16 -0
  2. package/built/cjs/index.js +2205 -3742
  3. package/built/cjs/index.js.map +1 -1
  4. package/built/esm/index.js +10425 -11683
  5. package/built/esm/index.js.map +1 -1
  6. package/built/index.d.ts +3 -8
  7. package/built/index.js +2 -11
  8. package/built/index.js.map +1 -1
  9. package/built/mocks/handlers.d.ts +1 -1
  10. package/built/mocks/handlers.js +62 -21
  11. package/built/mocks/handlers.js.map +1 -1
  12. package/built/src/ICCF/IccfProofTxMaterialBuilder.d.ts +3 -2
  13. package/built/src/ICCF/IccfProofTxMaterialBuilder.js +23 -10
  14. package/built/src/ICCF/IccfProofTxMaterialBuilder.js.map +1 -1
  15. package/built/src/ICCF/types.d.ts +4 -1
  16. package/built/src/ICCF/utils.js +2 -2
  17. package/built/src/ICCF/utils.js.map +1 -1
  18. package/built/src/blockchainClient/blockchainClient.js +56 -53
  19. package/built/src/blockchainClient/blockchainClient.js.map +1 -1
  20. package/built/src/blockchainClient/clientStub.js +18 -16
  21. package/built/src/blockchainClient/clientStub.js.map +1 -1
  22. package/built/src/blockchainClient/enums.d.ts +5 -0
  23. package/built/src/blockchainClient/enums.js +6 -0
  24. package/built/src/blockchainClient/enums.js.map +1 -1
  25. package/built/src/blockchainClient/errors.d.ts +20 -0
  26. package/built/src/blockchainClient/errors.js +41 -0
  27. package/built/src/blockchainClient/errors.js.map +1 -1
  28. package/built/src/{restclient → blockchainClient}/failoverStrategies.d.ts +14 -0
  29. package/built/src/{restclient → blockchainClient}/failoverStrategies.js +104 -24
  30. package/built/src/blockchainClient/failoverStrategies.js.map +1 -0
  31. package/built/src/blockchainClient/httpUtil.d.ts +4 -0
  32. package/built/src/{restclient → blockchainClient}/httpUtil.js +27 -23
  33. package/built/src/blockchainClient/httpUtil.js.map +1 -0
  34. package/built/src/blockchainClient/interface.d.ts +48 -59
  35. package/built/src/{restclient → blockchainClient}/nodeManager.d.ts +3 -0
  36. package/built/src/{restclient → blockchainClient}/nodeManager.js +7 -0
  37. package/built/src/blockchainClient/nodeManager.js.map +1 -0
  38. package/built/src/blockchainClient/requestWithFailoverStrategy.d.ts +4 -0
  39. package/built/src/blockchainClient/requestWithFailoverStrategy.js +31 -0
  40. package/built/src/blockchainClient/requestWithFailoverStrategy.js.map +1 -0
  41. package/built/src/blockchainClient/types.d.ts +64 -20
  42. package/built/src/blockchainClient/utils.d.ts +47 -12
  43. package/built/src/blockchainClient/utils.js +149 -30
  44. package/built/src/blockchainClient/utils.js.map +1 -1
  45. package/built/src/blockchainClient/validation/merkleHash.js +2 -1
  46. package/built/src/blockchainClient/validation/merkleHash.js.map +1 -1
  47. package/built/src/blockchainClient/validation/rawGtx.d.ts +2 -0
  48. package/built/src/blockchainClient/validation/rawGtx.js +22 -0
  49. package/built/src/blockchainClient/validation/rawGtx.js.map +1 -0
  50. package/built/src/blockchainClient/validation/requests.d.ts +5 -2
  51. package/built/src/blockchainClient/validation/requests.js +26 -0
  52. package/built/src/blockchainClient/validation/requests.js.map +1 -1
  53. package/built/src/blockchainClient/validation/transactionStatusReponse.d.ts +2 -0
  54. package/built/src/blockchainClient/validation/transactionStatusReponse.js +24 -0
  55. package/built/src/blockchainClient/validation/transactionStatusReponse.js.map +1 -0
  56. package/built/src/blockchainClient/validation/txRid.js +1 -1
  57. package/built/src/blockchainClient/validation/txRid.js.map +1 -1
  58. package/built/src/encryption/encryption.d.ts +0 -1
  59. package/built/src/encryption/encryption.js +0 -2
  60. package/built/src/encryption/encryption.js.map +1 -1
  61. package/built/src/formatter.d.ts +5 -7
  62. package/built/src/formatter.js +10 -29
  63. package/built/src/formatter.js.map +1 -1
  64. package/built/src/gtv/index.d.ts +3 -2
  65. package/built/src/gtv/index.js +4 -6
  66. package/built/src/gtv/index.js.map +1 -1
  67. package/built/src/gtx/errors.d.ts +2 -1
  68. package/built/src/gtx/errors.js.map +1 -1
  69. package/built/src/gtx/gtx.d.ts +5 -2
  70. package/built/src/gtx/gtx.js +0 -7
  71. package/built/src/gtx/gtx.js.map +1 -1
  72. package/built/src/gtx/serialization.d.ts +0 -1
  73. package/built/src/gtx/serialization.js +0 -1
  74. package/built/src/gtx/serialization.js.map +1 -1
  75. package/built/src/gtx/types.d.ts +0 -8
  76. package/built/src/logger.d.ts +6 -9
  77. package/built/src/logger.js +8 -14
  78. package/built/src/logger.js.map +1 -1
  79. package/built/src/promiEvent/promiEventEmitter.d.ts +1 -8
  80. package/built/src/promiEvent/promiEventEmitter.js.map +1 -1
  81. package/built/src/utils/calculateTransactionRid.d.ts +1 -1
  82. package/built/src/utils/calculateTransactionRid.js +6 -6
  83. package/built/src/utils/calculateTransactionRid.js.map +1 -1
  84. package/built/src/utils/constants.d.ts +4 -0
  85. package/built/src/utils/constants.js +5 -0
  86. package/built/src/utils/constants.js.map +1 -0
  87. package/built/src/utils/decodeTransactionToGtx.d.ts +1 -1
  88. package/built/src/utils/decodeTransactionToGtx.js +4 -3
  89. package/built/src/utils/decodeTransactionToGtx.js.map +1 -1
  90. package/built/src/utils/encodeTransaction.d.ts +1 -1
  91. package/built/src/utils/encodeTransaction.js +4 -4
  92. package/built/src/utils/encodeTransaction.js.map +1 -1
  93. package/built/test/common/mocks.d.ts +118 -0
  94. package/built/test/common/mocks.js +239 -0
  95. package/built/test/common/mocks.js.map +1 -0
  96. package/built/test/{unit/gtx → common}/serializationtestobjects.d.ts +1 -1
  97. package/built/test/common/serializationtestobjects.js.map +1 -0
  98. package/built/test/common/setups.d.ts +27 -0
  99. package/built/test/common/setups.js +137 -0
  100. package/built/test/common/setups.js.map +1 -0
  101. package/built/test/{unit → common}/signatures.d.ts +0 -1
  102. package/built/test/{unit → common}/signatures.js +0 -1
  103. package/built/test/common/signatures.js.map +1 -0
  104. package/built/test/common/testData.js.map +1 -0
  105. package/built/test/{unit/validation → common}/validationMocks.d.ts +22 -2
  106. package/built/test/{unit/validation → common}/validationMocks.js +13 -1
  107. package/built/test/common/validationMocks.js.map +1 -0
  108. package/built/test/integration/clientGetBlockInfo.test.js +51 -0
  109. package/built/test/integration/clientGetBlockInfo.test.js.map +1 -0
  110. package/built/test/integration/clientGetRejectedTransactions.test.js +28 -0
  111. package/built/test/integration/clientGetRejectedTransactions.test.js.map +1 -0
  112. package/built/test/integration/clientGetTransaction.test.js +29 -0
  113. package/built/test/integration/clientGetTransaction.test.js.map +1 -0
  114. package/built/test/integration/clientGetTransactionStatus.test.js +71 -0
  115. package/built/test/integration/clientGetTransactionStatus.test.js.map +1 -0
  116. package/built/test/integration/clientGetWaitingTransaction.test.js +34 -0
  117. package/built/test/integration/clientGetWaitingTransaction.test.js.map +1 -0
  118. package/built/test/integration/clientGetWaitingTransactions.test.js +28 -0
  119. package/built/test/integration/clientGetWaitingTransactions.test.js.map +1 -0
  120. package/built/test/integration/clientIntegration.test.js +95 -0
  121. package/built/test/integration/clientIntegration.test.js.map +1 -0
  122. package/built/test/integration/clientQuery.test.js +380 -0
  123. package/built/test/integration/clientQuery.test.js.map +1 -0
  124. package/built/test/integration/clientSendTransaction.test.js +86 -0
  125. package/built/test/integration/clientSendTransaction.test.js.map +1 -0
  126. package/built/test/integration/clientSignAndSendUniqueTransaction.test.js +75 -0
  127. package/built/test/integration/clientSignAndSendUniqueTransaction.test.js.map +1 -0
  128. package/built/test/integration/clientSignTransaction.test.js +77 -0
  129. package/built/test/integration/clientSignTransaction.test.js.map +1 -0
  130. package/built/test/integration/{blockchainClientUtils.test.js → clientUtils.test.js} +13 -8
  131. package/built/test/integration/clientUtils.test.js.map +1 -0
  132. package/built/test/integration/createClientIntegration.test.js +158 -0
  133. package/built/test/integration/createClientIntegration.test.js.map +1 -0
  134. package/built/test/integration/encodeTransaction.test.js +3 -6
  135. package/built/test/integration/encodeTransaction.test.js.map +1 -1
  136. package/built/test/integration/getTransactionsInfo.test.js +17 -26
  137. package/built/test/integration/getTransactionsInfo.test.js.map +1 -1
  138. package/built/test/integration/signAndSendUniqueTransaction.test.js +26 -19
  139. package/built/test/integration/signAndSendUniqueTransaction.test.js.map +1 -1
  140. package/built/test/integrationChromiaNetwork/createIccfProofTx.test.js +59 -0
  141. package/built/test/integrationChromiaNetwork/createIccfProofTx.test.js.map +1 -0
  142. package/built/test/{integrationDevnet → integrationChromiaNetwork}/getAnchoringStatusForBlockRid.test.js +9 -15
  143. package/built/test/integrationChromiaNetwork/getAnchoringStatusForBlockRid.test.js.map +1 -0
  144. package/built/test/{integrationDevnet → integrationChromiaNetwork}/getTransactionConfirmationLevel.test.js +7 -13
  145. package/built/test/integrationChromiaNetwork/getTransactionConfirmationLevel.test.js.map +1 -0
  146. package/built/test/integrationChromiaNetwork/getTransactionStatus.test.js +45 -0
  147. package/built/test/integrationChromiaNetwork/getTransactionStatus.test.js.map +1 -0
  148. package/built/test/integrationChromiaNetwork/isBlockAnchored.test.js +35 -0
  149. package/built/test/integrationChromiaNetwork/isBlockAnchored.test.js.map +1 -0
  150. package/built/test/integrationChromiaNetwork/merkleHashIntegration.test.d.ts +1 -0
  151. package/built/test/integrationChromiaNetwork/merkleHashIntegration.test.js +134 -0
  152. package/built/test/integrationChromiaNetwork/merkleHashIntegration.test.js.map +1 -0
  153. package/built/test/integrationChromiaNetwork/nodeDiscovery.test.d.ts +1 -0
  154. package/built/test/integrationChromiaNetwork/nodeDiscovery.test.js +26 -0
  155. package/built/test/integrationChromiaNetwork/nodeDiscovery.test.js.map +1 -0
  156. package/built/test/integrationChromiaNetwork/requestWithFailoverStrategy.test.d.ts +1 -0
  157. package/built/test/integrationChromiaNetwork/requestWithFailoverStrategy.test.js +84 -0
  158. package/built/test/integrationChromiaNetwork/requestWithFailoverStrategy.test.js.map +1 -0
  159. package/built/test/integrationChromiaNetwork/signAndSendUniqueTransaction.test.d.ts +1 -0
  160. package/built/test/{integrationDevnet → integrationChromiaNetwork}/signAndSendUniqueTransaction.test.js +27 -44
  161. package/built/test/integrationChromiaNetwork/signAndSendUniqueTransaction.test.js.map +1 -0
  162. package/built/test/manual/iccfManually.test.js +18 -27
  163. package/built/test/manual/iccfManually.test.js.map +1 -1
  164. package/built/test/pcctf/getSuites.test.d.ts +1 -0
  165. package/built/test/pcctf/getSuites.test.js +106 -0
  166. package/built/test/pcctf/getSuites.test.js.map +1 -0
  167. package/built/test/pcctf/helpers.d.ts +92 -0
  168. package/built/test/pcctf/helpers.js +239 -0
  169. package/built/test/pcctf/helpers.js.map +1 -0
  170. package/built/test/unit/ICCF/iccf.test.js +63 -158
  171. package/built/test/unit/ICCF/iccf.test.js.map +1 -1
  172. package/built/test/unit/ICCF/iccfProofMaterialBuilder.test.d.ts +1 -2
  173. package/built/test/unit/ICCF/iccfProofMaterialBuilder.test.js +101 -296
  174. package/built/test/unit/ICCF/iccfProofMaterialBuilder.test.js.map +1 -1
  175. package/built/test/unit/blockchainClient/client.getRejectedTransactions.test.d.ts +1 -0
  176. package/built/test/unit/blockchainClient/client.getRejectedTransactions.test.js +48 -0
  177. package/built/test/unit/blockchainClient/client.getRejectedTransactions.test.js.map +1 -0
  178. package/built/test/unit/blockchainClient/client.getWaitingTransaction.test.d.ts +1 -0
  179. package/built/test/unit/blockchainClient/client.getWaitingTransaction.test.js +38 -0
  180. package/built/test/unit/blockchainClient/client.getWaitingTransaction.test.js.map +1 -0
  181. package/built/test/unit/blockchainClient/client.getWaitingTransactions.test.d.ts +1 -0
  182. package/built/test/unit/blockchainClient/client.getWaitingTransactions.test.js +30 -0
  183. package/built/test/unit/blockchainClient/client.getWaitingTransactions.test.js.map +1 -0
  184. package/built/test/unit/blockchainClient/client.test.d.ts +1 -0
  185. package/built/test/unit/blockchainClient/client.test.js +177 -0
  186. package/built/test/unit/blockchainClient/client.test.js.map +1 -0
  187. package/built/test/unit/blockchainClient/clientCustomStatusCodes.test.js +26 -32
  188. package/built/test/unit/blockchainClient/clientCustomStatusCodes.test.js.map +1 -1
  189. package/built/test/unit/blockchainClient/getAnchoringStatusForBlockRid.test.js +26 -59
  190. package/built/test/unit/blockchainClient/getAnchoringStatusForBlockRid.test.js.map +1 -1
  191. package/built/test/unit/blockchainClient/getSystemAnchoringTransactionConfirmation.test.js +21 -38
  192. package/built/test/unit/blockchainClient/getSystemAnchoringTransactionConfirmation.test.js.map +1 -1
  193. package/built/test/unit/blockchainClient/getTransactionConfirmationLevel.test.js +77 -127
  194. package/built/test/unit/blockchainClient/getTransactionConfirmationLevel.test.js.map +1 -1
  195. package/built/test/unit/blockchainClient/sendTransaction.test.js +352 -675
  196. package/built/test/unit/blockchainClient/sendTransaction.test.js.map +1 -1
  197. package/built/test/unit/blockchainClient/setMerkleVersion.test.js +14 -28
  198. package/built/test/unit/blockchainClient/setMerkleVersion.test.js.map +1 -1
  199. package/built/test/unit/blockchainClient/signAndSendUniqueTransactionPromiEvents.test.js +31 -98
  200. package/built/test/unit/blockchainClient/signAndSendUniqueTransactionPromiEvents.test.js.map +1 -1
  201. package/built/test/unit/blockchainClient/statusPollIntervals.test.js +34 -54
  202. package/built/test/unit/blockchainClient/statusPollIntervals.test.js.map +1 -1
  203. package/built/test/unit/blockchainClient/util.test.js +74 -133
  204. package/built/test/unit/blockchainClient/util.test.js.map +1 -1
  205. package/built/test/unit/decodeTransactionToGtx.test.js +3 -4
  206. package/built/test/unit/decodeTransactionToGtx.test.js.map +1 -1
  207. package/built/test/unit/dump.test.js +2 -3
  208. package/built/test/unit/dump.test.js.map +1 -1
  209. package/built/test/unit/encryption/encryption.test.js +23 -32
  210. package/built/test/unit/encryption/encryption.test.js.map +1 -1
  211. package/built/test/unit/failoverStrategies.test.js +122 -114
  212. package/built/test/unit/failoverStrategies.test.js.map +1 -1
  213. package/built/test/unit/formatter.test.js +38 -42
  214. package/built/test/unit/formatter.test.js.map +1 -1
  215. package/built/test/unit/gtv/gtvHash.test.js +5 -6
  216. package/built/test/unit/gtv/gtvHash.test.js.map +1 -1
  217. package/built/test/unit/gtx/checkGTXSignature.test.js +5 -7
  218. package/built/test/unit/gtx/checkGTXSignature.test.js.map +1 -1
  219. package/built/test/unit/gtx/newSignatureProvider.test.js +9 -10
  220. package/built/test/unit/gtx/newSignatureProvider.test.js.map +1 -1
  221. package/built/test/unit/gtx/serialization.test.js +37 -138
  222. package/built/test/unit/gtx/serialization.test.js.map +1 -1
  223. package/built/test/unit/httpUtil.test.js +27 -18
  224. package/built/test/unit/httpUtil.test.js.map +1 -1
  225. package/built/test/unit/logger.test.js +23 -25
  226. package/built/test/unit/logger.test.js.map +1 -1
  227. package/built/test/unit/nodeMananger.test.js +62 -74
  228. package/built/test/unit/nodeMananger.test.js.map +1 -1
  229. package/built/test/unit/setOrdering.test.js +9 -9
  230. package/built/test/unit/setOrdering.test.js.map +1 -1
  231. package/built/test/unit/stickyNode.test.js +44 -54
  232. package/built/test/unit/stickyNode.test.js.map +1 -1
  233. package/built/test/unit/validation/anchoringTransaction.test.js +7 -8
  234. package/built/test/unit/validation/anchoringTransaction.test.js.map +1 -1
  235. package/built/test/unit/validation/blockIdentifier.test.js +7 -9
  236. package/built/test/unit/validation/blockIdentifier.test.js.map +1 -1
  237. package/built/test/unit/validation/bufferSchema.test.js +4 -5
  238. package/built/test/unit/validation/bufferSchema.test.js.map +1 -1
  239. package/built/test/unit/validation/networkSettings.test.js +11 -13
  240. package/built/test/unit/validation/networkSettings.test.js.map +1 -1
  241. package/built/test/unit/validation/rawGtx.test.d.ts +1 -0
  242. package/built/test/unit/validation/rawGtx.test.js +84 -0
  243. package/built/test/unit/validation/rawGtx.test.js.map +1 -0
  244. package/built/test/unit/validation/requests.test.js +80 -74
  245. package/built/test/unit/validation/requests.test.js.map +1 -1
  246. package/built/test/unit/validation/signMethod.test.js +8 -10
  247. package/built/test/unit/validation/signMethod.test.js.map +1 -1
  248. package/built/test/unit/validation/statusObject.test.d.ts +1 -0
  249. package/built/test/unit/validation/statusObject.test.js +91 -0
  250. package/built/test/unit/validation/statusObject.test.js.map +1 -0
  251. package/built/test/unit/validation/txRid.test.js +7 -9
  252. package/built/test/unit/validation/txRid.test.js.map +1 -1
  253. package/built/umd/index.js +31711 -31107
  254. package/built/umd/index.js.map +1 -1
  255. package/package.json +26 -22
  256. package/built/src/chromia/chromiaClientProvider.d.ts +0 -9
  257. package/built/src/chromia/chromiaClientProvider.js +0 -36
  258. package/built/src/chromia/chromiaClientProvider.js.map +0 -1
  259. package/built/src/chromia/interfaces.d.ts +0 -4
  260. package/built/src/chromia/interfaces.js +0 -2
  261. package/built/src/chromia/interfaces.js.map +0 -1
  262. package/built/src/constants.d.ts +0 -3
  263. package/built/src/constants.js +0 -4
  264. package/built/src/constants.js.map +0 -1
  265. package/built/src/gtx/gtxclient.d.ts +0 -3
  266. package/built/src/gtx/gtxclient.js +0 -96
  267. package/built/src/gtx/gtxclient.js.map +0 -1
  268. package/built/src/gtx/interfaces.d.ts +0 -91
  269. package/built/src/gtx/interfaces.js +0 -2
  270. package/built/src/gtx/interfaces.js.map +0 -1
  271. package/built/src/merkle/binarytree.d.ts +0 -131
  272. package/built/src/merkle/binarytree.js +0 -146
  273. package/built/src/merkle/binarytree.js.map +0 -1
  274. package/built/src/merkle/binarytreefactory.d.ts +0 -86
  275. package/built/src/merkle/binarytreefactory.js +0 -251
  276. package/built/src/merkle/binarytreefactory.js.map +0 -1
  277. package/built/src/merkle/merkleHelper.d.ts +0 -18
  278. package/built/src/merkle/merkleHelper.js +0 -110
  279. package/built/src/merkle/merkleHelper.js.map +0 -1
  280. package/built/src/merkle/merklehashcalculator.d.ts +0 -37
  281. package/built/src/merkle/merklehashcalculator.js +0 -73
  282. package/built/src/merkle/merklehashcalculator.js.map +0 -1
  283. package/built/src/merkle/path.d.ts +0 -151
  284. package/built/src/merkle/path.js +0 -306
  285. package/built/src/merkle/path.js.map +0 -1
  286. package/built/src/merkle/proof/merklehashcarrier.d.ts +0 -17
  287. package/built/src/merkle/proof/merklehashcarrier.js +0 -23
  288. package/built/src/merkle/proof/merklehashcarrier.js.map +0 -1
  289. package/built/src/merkle/proof/merklehashsummaryfactory.d.ts +0 -53
  290. package/built/src/merkle/proof/merklehashsummaryfactory.js +0 -82
  291. package/built/src/merkle/proof/merklehashsummaryfactory.js.map +0 -1
  292. package/built/src/merkle/proof/merkleproof.d.ts +0 -36
  293. package/built/src/merkle/proof/merkleproof.js +0 -61
  294. package/built/src/merkle/proof/merkleproof.js.map +0 -1
  295. package/built/src/merkle/proof/merkleprooftree.d.ts +0 -124
  296. package/built/src/merkle/proof/merkleprooftree.js +0 -117
  297. package/built/src/merkle/proof/merkleprooftree.js.map +0 -1
  298. package/built/src/merkle/proof/merkleprooftreefactory.d.ts +0 -47
  299. package/built/src/merkle/proof/merkleprooftreefactory.js +0 -123
  300. package/built/src/merkle/proof/merkleprooftreefactory.js.map +0 -1
  301. package/built/src/merkle/types.d.ts +0 -11
  302. package/built/src/merkle/types.js +0 -2
  303. package/built/src/merkle/types.js.map +0 -1
  304. package/built/src/restclient/enums.d.ts +0 -4
  305. package/built/src/restclient/enums.js +0 -6
  306. package/built/src/restclient/enums.js.map +0 -1
  307. package/built/src/restclient/errors.d.ts +0 -33
  308. package/built/src/restclient/errors.js +0 -63
  309. package/built/src/restclient/errors.js.map +0 -1
  310. package/built/src/restclient/failoverStrategies.js.map +0 -1
  311. package/built/src/restclient/httpUtil.d.ts +0 -6
  312. package/built/src/restclient/httpUtil.js.map +0 -1
  313. package/built/src/restclient/interfaces.d.ts +0 -68
  314. package/built/src/restclient/interfaces.js +0 -2
  315. package/built/src/restclient/interfaces.js.map +0 -1
  316. package/built/src/restclient/nodeManager.js.map +0 -1
  317. package/built/src/restclient/restclient.d.ts +0 -18
  318. package/built/src/restclient/restclient.js +0 -200
  319. package/built/src/restclient/restclient.js.map +0 -1
  320. package/built/src/restclient/restclientutil.d.ts +0 -32
  321. package/built/src/restclient/restclientutil.js +0 -141
  322. package/built/src/restclient/restclientutil.js.map +0 -1
  323. package/built/src/restclient/types.d.ts +0 -78
  324. package/built/src/restclient/types.js +0 -2
  325. package/built/src/restclient/types.js.map +0 -1
  326. package/built/test/integration/blockchainClientIntegration.test.js +0 -1075
  327. package/built/test/integration/blockchainClientIntegration.test.js.map +0 -1
  328. package/built/test/integration/blockchainClientUtils.test.js.map +0 -1
  329. package/built/test/integration/gtxClientIntegration.test.js +0 -334
  330. package/built/test/integration/gtxClientIntegration.test.js.map +0 -1
  331. package/built/test/integration/merkleIntegration.test.js +0 -138
  332. package/built/test/integration/merkleIntegration.test.js.map +0 -1
  333. package/built/test/integration/objectGenerator.d.ts +0 -3
  334. package/built/test/integration/objectGenerator.js +0 -17
  335. package/built/test/integration/objectGenerator.js.map +0 -1
  336. package/built/test/integration/restClientIntegration.test.js +0 -170
  337. package/built/test/integration/restClientIntegration.test.js.map +0 -1
  338. package/built/test/integration/testData.js.map +0 -1
  339. package/built/test/integrationDevnet/constants.d.ts +0 -1
  340. package/built/test/integrationDevnet/constants.js +0 -2
  341. package/built/test/integrationDevnet/constants.js.map +0 -1
  342. package/built/test/integrationDevnet/getAnchoringStatusForBlockRid.test.js.map +0 -1
  343. package/built/test/integrationDevnet/getTransactionConfirmationLevel.test.js.map +0 -1
  344. package/built/test/integrationDevnet/getTransactionStatus.test.js +0 -53
  345. package/built/test/integrationDevnet/getTransactionStatus.test.js.map +0 -1
  346. package/built/test/integrationDevnet/signAndSendUniqueTransaction.test.js.map +0 -1
  347. package/built/test/manual/chromiaClientProviderManually.test.js +0 -28
  348. package/built/test/manual/chromiaClientProviderManually.test.js.map +0 -1
  349. package/built/test/manual/restClientManually.test.js +0 -52
  350. package/built/test/manual/restClientManually.test.js.map +0 -1
  351. package/built/test/unit/ICCF/util.d.ts +0 -6
  352. package/built/test/unit/ICCF/util.js +0 -21
  353. package/built/test/unit/ICCF/util.js.map +0 -1
  354. package/built/test/unit/blockchainClient/blockchainClient.test.js +0 -287
  355. package/built/test/unit/blockchainClient/blockchainClient.test.js.map +0 -1
  356. package/built/test/unit/blockchainClient/helpers/sendTransaction.d.ts +0 -25
  357. package/built/test/unit/blockchainClient/helpers/sendTransaction.js +0 -56
  358. package/built/test/unit/blockchainClient/helpers/sendTransaction.js.map +0 -1
  359. package/built/test/unit/chromiaClientProvider.test.js +0 -70
  360. package/built/test/unit/chromiaClientProvider.test.js.map +0 -1
  361. package/built/test/unit/common/mocks.d.ts +0 -34
  362. package/built/test/unit/common/mocks.js +0 -69
  363. package/built/test/unit/common/mocks.js.map +0 -1
  364. package/built/test/unit/gtx/gtxClient.test.js +0 -97
  365. package/built/test/unit/gtx/gtxClient.test.js.map +0 -1
  366. package/built/test/unit/gtx/serializationtestobjects.js.map +0 -1
  367. package/built/test/unit/merkle/merkleHelper/merkleHelperTest.js +0 -87
  368. package/built/test/unit/merkle/merkleHelper/merkleHelperTest.js.map +0 -1
  369. package/built/test/unit/requestWithFailoverStrategy.test.js +0 -146
  370. package/built/test/unit/requestWithFailoverStrategy.test.js.map +0 -1
  371. package/built/test/unit/restClient.test.js +0 -389
  372. package/built/test/unit/restClient.test.js.map +0 -1
  373. package/built/test/unit/restClientUtil.test.js +0 -226
  374. package/built/test/unit/restClientUtil.test.js.map +0 -1
  375. package/built/test/unit/signatures.js.map +0 -1
  376. package/built/test/unit/validation/validationMocks.js.map +0 -1
  377. package/changelog.md +0 -586
  378. /package/built/test/{unit/gtx → common}/serializationtestobjects.js +0 -0
  379. /package/built/test/{integration → common}/testData.d.ts +0 -0
  380. /package/built/test/{integration → common}/testData.js +0 -0
  381. /package/built/test/integration/{blockchainClientIntegration.test.d.ts → clientGetBlockInfo.test.d.ts} +0 -0
  382. /package/built/test/integration/{blockchainClientUtils.test.d.ts → clientGetRejectedTransactions.test.d.ts} +0 -0
  383. /package/built/test/integration/{gtxClientIntegration.test.d.ts → clientGetTransaction.test.d.ts} +0 -0
  384. /package/built/test/integration/{merkleIntegration.test.d.ts → clientGetTransactionStatus.test.d.ts} +0 -0
  385. /package/built/test/integration/{restClientIntegration.test.d.ts → clientGetWaitingTransaction.test.d.ts} +0 -0
  386. /package/built/test/{integrationDevnet/getAnchoringStatusForBlockRid.test.d.ts → integration/clientGetWaitingTransactions.test.d.ts} +0 -0
  387. /package/built/test/{integrationDevnet/getTransactionConfirmationLevel.test.d.ts → integration/clientIntegration.test.d.ts} +0 -0
  388. /package/built/test/{integrationDevnet/getTransactionStatus.test.d.ts → integration/clientQuery.test.d.ts} +0 -0
  389. /package/built/test/{integrationDevnet/signAndSendUniqueTransaction.test.d.ts → integration/clientSendTransaction.test.d.ts} +0 -0
  390. /package/built/test/{manual/chromiaClientProviderManually.test.d.ts → integration/clientSignAndSendUniqueTransaction.test.d.ts} +0 -0
  391. /package/built/test/{manual/restClientManually.test.d.ts → integration/clientSignTransaction.test.d.ts} +0 -0
  392. /package/built/test/{unit/blockchainClient/blockchainClient.test.d.ts → integration/clientUtils.test.d.ts} +0 -0
  393. /package/built/test/{unit/chromiaClientProvider.test.d.ts → integration/createClientIntegration.test.d.ts} +0 -0
  394. /package/built/test/{unit/gtx/gtxClient.test.d.ts → integrationChromiaNetwork/createIccfProofTx.test.d.ts} +0 -0
  395. /package/built/test/{unit/merkle/merkleHelper/merkleHelperTest.d.ts → integrationChromiaNetwork/getAnchoringStatusForBlockRid.test.d.ts} +0 -0
  396. /package/built/test/{unit/requestWithFailoverStrategy.test.d.ts → integrationChromiaNetwork/getTransactionConfirmationLevel.test.d.ts} +0 -0
  397. /package/built/test/{unit/restClient.test.d.ts → integrationChromiaNetwork/getTransactionStatus.test.d.ts} +0 -0
  398. /package/built/test/{unit/restClientUtil.test.d.ts → integrationChromiaNetwork/isBlockAnchored.test.d.ts} +0 -0
@@ -7,49 +7,53 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import sinon from "sinon";
11
- import { abortOnError, retryRequest, singleEndpoint, tryNextOnError, queryMajority, } from "../../src/restclient/failoverStrategies";
12
- import * as handleRequestModule from "../../src/restclient/httpUtil";
13
- import { Method } from "../../src/restclient/enums";
14
- import { FailoverStrategy } from "../../src/blockchainClient/enums";
15
- import { expect } from "chai";
16
- import { createNodeManager } from "../../src/restclient/nodeManager";
17
- import { errorMessages } from "../../src/restclient/failoverStrategies";
18
- import { mockStringDirectoryChainRid } from "./common/mocks";
10
+ import { abortOnError, tryNextOnError, queryMajority, singleEndpoint, retryRequest, errorMessages, } from "../../src/blockchainClient/failoverStrategies";
11
+ import { FailoverStrategy, Method } from "../../src/blockchainClient/enums";
12
+ import { createNodeManager } from "../../src/blockchainClient/nodeManager";
13
+ import { mockStringDirectoryChainRid } from "../common/mocks";
19
14
  import { setStatusPolling } from "../../src/blockchainClient/utils";
20
- let mockHandleRequest = sinon.stub();
21
- describe("Failover strategies", function () {
15
+ import * as httpUtils from "../../src/blockchainClient/httpUtil";
16
+ import { MERKLE_HASH_VERSIONS } from "../../src/utils/constants";
17
+ describe("Failover strategies", () => {
22
18
  beforeEach(() => {
23
- mockHandleRequest = sinon.stub(handleRequestModule, "default");
19
+ jest.clearAllMocks();
24
20
  });
25
21
  afterEach(() => {
26
- sinon.resetHistory();
27
- sinon.restore();
28
- mockHandleRequest.reset();
22
+ jest.restoreAllMocks();
29
23
  });
30
24
  function testAbortOnError({ error, statusCode, numberOfRetries, config }) {
31
25
  return __awaiter(this, void 0, void 0, function* () {
32
- mockHandleRequest
33
- .withArgs(sinon.match.any, "/path/abort-on-error-test", sinon.match.any, sinon.match.any)
34
- .returns({
35
- error,
36
- statusCode,
37
- rspBody: "",
26
+ const handleRequestSpy = jest
27
+ .spyOn(httpUtils, "handleRequest")
28
+ .mockImplementation((method, path) => {
29
+ if (path === "/path/abort-on-error-test") {
30
+ return Promise.resolve({
31
+ error,
32
+ statusCode,
33
+ rspBody: "",
34
+ });
35
+ }
36
+ return Promise.resolve({
37
+ error: null,
38
+ statusCode: 200,
39
+ rspBody: "default response",
40
+ });
38
41
  });
39
42
  yield abortOnError({
40
43
  method: Method.GET,
41
44
  path: "/path/abort-on-error-test",
42
45
  config,
43
46
  });
44
- const expectedCalls = mockHandleRequest
45
- .getCalls()
46
- .filter(call => call.calledWithExactly(sinon.match.any, "/path/abort-on-error-test", sinon.match.any, sinon.match.any));
47
- expect(expectedCalls.length).to.equal(numberOfRetries);
47
+ const expectedCalls = handleRequestSpy.mock.calls.filter(call => {
48
+ const [, path, endpoint] = call;
49
+ return (path === "/path/abort-on-error-test" && config.endpointPool.some(ep => ep.url === endpoint));
50
+ });
51
+ expect(expectedCalls.length).toBe(numberOfRetries);
48
52
  });
49
53
  }
50
54
  function testTryNextOnError({ error, statusCode, numberOfRetries, config }) {
51
55
  return __awaiter(this, void 0, void 0, function* () {
52
- mockHandleRequest.resolves({
56
+ const handleRequestSpy = jest.spyOn(httpUtils, "handleRequest").mockResolvedValue({
53
57
  error,
54
58
  statusCode,
55
59
  rspBody: "",
@@ -59,12 +63,12 @@ describe("Failover strategies", function () {
59
63
  path: "/path",
60
64
  config,
61
65
  });
62
- sinon.assert.callCount(mockHandleRequest, numberOfRetries);
66
+ expect(handleRequestSpy).toHaveBeenCalledTimes(numberOfRetries);
63
67
  });
64
68
  }
65
69
  function testSingleEndpoint({ error, statusCode, numberOfRetries, config }) {
66
70
  return __awaiter(this, void 0, void 0, function* () {
67
- mockHandleRequest.resolves({
71
+ const handleRequestSpy = jest.spyOn(httpUtils, "handleRequest").mockResolvedValue({
68
72
  error,
69
73
  statusCode,
70
74
  rspBody: "",
@@ -74,12 +78,12 @@ describe("Failover strategies", function () {
74
78
  path: "/path",
75
79
  config,
76
80
  });
77
- sinon.assert.callCount(mockHandleRequest, numberOfRetries);
81
+ expect(handleRequestSpy).toHaveBeenCalledTimes(numberOfRetries);
78
82
  });
79
83
  }
80
- describe("AbortOnError", function () {
84
+ describe("AbortOnError", () => {
81
85
  const config = {
82
- merkleHashVersion: 2,
86
+ merkleHashVersion: MERKLE_HASH_VERSIONS.ONE,
83
87
  endpointPool: [
84
88
  { url: "url1", whenAvailable: 0 },
85
89
  { url: "url2", whenAvailable: 0 },
@@ -94,7 +98,7 @@ describe("Failover strategies", function () {
94
98
  unreachableDuration: 100,
95
99
  directoryChainRid: mockStringDirectoryChainRid,
96
100
  };
97
- it("abortOnError retries when server error 500", () => __awaiter(this, void 0, void 0, function* () {
101
+ it("abortOnError retries when server error 500", () => __awaiter(void 0, void 0, void 0, function* () {
98
102
  yield testAbortOnError({
99
103
  numberOfRetries: 6,
100
104
  statusCode: 500,
@@ -102,7 +106,7 @@ describe("Failover strategies", function () {
102
106
  config: Object.assign(Object.assign({}, config), { nodeManager: createNodeManager({ nodeUrls: ["url1", "url2"] }) }),
103
107
  });
104
108
  }));
105
- it("abortOnError retries when server error 503", () => __awaiter(this, void 0, void 0, function* () {
109
+ it("abortOnError retries when server error 503", () => __awaiter(void 0, void 0, void 0, function* () {
106
110
  yield testAbortOnError({
107
111
  numberOfRetries: 6,
108
112
  statusCode: 503,
@@ -110,7 +114,7 @@ describe("Failover strategies", function () {
110
114
  config: Object.assign(Object.assign({}, config), { nodeManager: createNodeManager({ nodeUrls: ["url1", "url2"] }) }),
111
115
  });
112
116
  }));
113
- it("abortOnError does not retry when client error 400", () => __awaiter(this, void 0, void 0, function* () {
117
+ it("abortOnError does not retry when client error 400", () => __awaiter(void 0, void 0, void 0, function* () {
114
118
  yield testAbortOnError({
115
119
  numberOfRetries: 1,
116
120
  statusCode: 400,
@@ -118,7 +122,7 @@ describe("Failover strategies", function () {
118
122
  config: Object.assign(Object.assign({}, config), { nodeManager: createNodeManager({ nodeUrls: ["url1", "url2"] }) }),
119
123
  });
120
124
  }));
121
- it("abortOnError does not retry when statuscode is 200", () => __awaiter(this, void 0, void 0, function* () {
125
+ it("abortOnError does not retry when statuscode is 200", () => __awaiter(void 0, void 0, void 0, function* () {
122
126
  yield testAbortOnError({
123
127
  numberOfRetries: 1,
124
128
  statusCode: 200,
@@ -126,7 +130,7 @@ describe("Failover strategies", function () {
126
130
  config: Object.assign(Object.assign({}, config), { nodeManager: createNodeManager({ nodeUrls: ["url1", "url2"] }) }),
127
131
  });
128
132
  }));
129
- it("abortOnError retries when error is returned", () => __awaiter(this, void 0, void 0, function* () {
133
+ it("abortOnError retries when error is returned", () => __awaiter(void 0, void 0, void 0, function* () {
130
134
  yield testAbortOnError({
131
135
  numberOfRetries: 6,
132
136
  statusCode: null,
@@ -135,7 +139,7 @@ describe("Failover strategies", function () {
135
139
  });
136
140
  }));
137
141
  });
138
- describe("TryNextOnError", function () {
142
+ describe("TryNextOnError", () => {
139
143
  const config = {
140
144
  endpointPool: [
141
145
  { url: "url1", whenAvailable: 0 },
@@ -150,48 +154,48 @@ describe("Failover strategies", function () {
150
154
  unreachableDuration: 100,
151
155
  directoryChainRid: mockStringDirectoryChainRid,
152
156
  };
153
- it("tryNextOnError retries when client error 400", () => __awaiter(this, void 0, void 0, function* () {
157
+ it("tryNextOnError retries when client error 400", () => __awaiter(void 0, void 0, void 0, function* () {
154
158
  yield testTryNextOnError({
155
159
  numberOfRetries: 6,
156
160
  statusCode: 400,
157
161
  error: null,
158
- config: Object.assign(Object.assign({}, config), { merkleHashVersion: 2, nodeManager: createNodeManager({
162
+ config: Object.assign(Object.assign({}, config), { merkleHashVersion: MERKLE_HASH_VERSIONS.ONE, nodeManager: createNodeManager({
159
163
  nodeUrls: ["url1", "url2"],
160
164
  }), dappStatusPolling: setStatusPolling(), clusterAnchoringStatusPolling: setStatusPolling(), systemAnchoringStatusPolling: setStatusPolling() }),
161
165
  });
162
166
  }));
163
- it("tryNextOnError retries when server error 500", () => __awaiter(this, void 0, void 0, function* () {
167
+ it("tryNextOnError retries when server error 500", () => __awaiter(void 0, void 0, void 0, function* () {
164
168
  yield testTryNextOnError({
165
169
  numberOfRetries: 6,
166
170
  statusCode: 500,
167
171
  error: null,
168
- config: Object.assign(Object.assign({}, config), { merkleHashVersion: 2, nodeManager: createNodeManager({
172
+ config: Object.assign(Object.assign({}, config), { merkleHashVersion: MERKLE_HASH_VERSIONS.ONE, nodeManager: createNodeManager({
169
173
  nodeUrls: ["url1", "url2"],
170
174
  }), dappStatusPolling: setStatusPolling(), clusterAnchoringStatusPolling: setStatusPolling(), systemAnchoringStatusPolling: setStatusPolling() }),
171
175
  });
172
176
  }));
173
- it("tryNextOnError does not retry when statuscode is 200", () => __awaiter(this, void 0, void 0, function* () {
177
+ it("tryNextOnError does not retry when statuscode is 200", () => __awaiter(void 0, void 0, void 0, function* () {
174
178
  yield testTryNextOnError({
175
179
  numberOfRetries: 1,
176
180
  statusCode: 200,
177
181
  error: null,
178
- config: Object.assign(Object.assign({}, config), { merkleHashVersion: 2, nodeManager: createNodeManager({
182
+ config: Object.assign(Object.assign({}, config), { merkleHashVersion: MERKLE_HASH_VERSIONS.ONE, nodeManager: createNodeManager({
179
183
  nodeUrls: ["url1", "url2"],
180
184
  }), dappStatusPolling: setStatusPolling(), clusterAnchoringStatusPolling: setStatusPolling(), systemAnchoringStatusPolling: setStatusPolling() }),
181
185
  });
182
186
  }));
183
- it("tryNextOnError reties when error is returned", () => __awaiter(this, void 0, void 0, function* () {
187
+ it("tryNextOnError reties when error is returned", () => __awaiter(void 0, void 0, void 0, function* () {
184
188
  yield testTryNextOnError({
185
189
  numberOfRetries: 6,
186
190
  statusCode: null,
187
191
  error: new Error(),
188
- config: Object.assign(Object.assign({}, config), { merkleHashVersion: 2, nodeManager: createNodeManager({
192
+ config: Object.assign(Object.assign({}, config), { merkleHashVersion: MERKLE_HASH_VERSIONS.ONE, nodeManager: createNodeManager({
189
193
  nodeUrls: ["url1", "url2"],
190
194
  }), dappStatusPolling: setStatusPolling(), clusterAnchoringStatusPolling: setStatusPolling(), systemAnchoringStatusPolling: setStatusPolling() }),
191
195
  });
192
196
  }));
193
197
  });
194
- describe("SingleEndpoint", function () {
198
+ describe("SingleEndpoint", () => {
195
199
  const config = {
196
200
  endpointPool: [
197
201
  { url: "url1", whenAvailable: 0 },
@@ -206,62 +210,60 @@ describe("Failover strategies", function () {
206
210
  unreachableDuration: 100,
207
211
  directoryChainRid: mockStringDirectoryChainRid,
208
212
  };
209
- it("singleEndpoint does not retry when statuscode is 200", () => __awaiter(this, void 0, void 0, function* () {
213
+ it("singleEndpoint does not retry when statuscode is 200", () => __awaiter(void 0, void 0, void 0, function* () {
210
214
  yield testSingleEndpoint({
211
215
  numberOfRetries: 1,
212
216
  statusCode: 200,
213
217
  error: null,
214
- config: Object.assign(Object.assign({}, config), { merkleHashVersion: 2, nodeManager: createNodeManager({
218
+ config: Object.assign(Object.assign({}, config), { merkleHashVersion: MERKLE_HASH_VERSIONS.ONE, nodeManager: createNodeManager({
215
219
  nodeUrls: ["url1", "url2"],
216
220
  }), dappStatusPolling: setStatusPolling(), clusterAnchoringStatusPolling: setStatusPolling(), systemAnchoringStatusPolling: setStatusPolling() }),
217
221
  });
218
222
  }));
219
- it("singleEndpoint retry when server error 400", () => __awaiter(this, void 0, void 0, function* () {
223
+ it("singleEndpoint retry when server error 400", () => __awaiter(void 0, void 0, void 0, function* () {
220
224
  yield testSingleEndpoint({
221
225
  numberOfRetries: 3,
222
226
  statusCode: 400,
223
227
  error: null,
224
- config: Object.assign(Object.assign({}, config), { merkleHashVersion: 2, nodeManager: createNodeManager({
228
+ config: Object.assign(Object.assign({}, config), { merkleHashVersion: MERKLE_HASH_VERSIONS.ONE, nodeManager: createNodeManager({
225
229
  nodeUrls: ["url1", "url2"],
226
230
  }), dappStatusPolling: setStatusPolling(), clusterAnchoringStatusPolling: setStatusPolling(), systemAnchoringStatusPolling: setStatusPolling() }),
227
231
  });
228
232
  }));
229
- it("singleEndpoint retry when server error 500", () => __awaiter(this, void 0, void 0, function* () {
233
+ it("singleEndpoint retry when server error 500", () => __awaiter(void 0, void 0, void 0, function* () {
230
234
  yield testSingleEndpoint({
231
235
  numberOfRetries: 3,
232
236
  statusCode: 500,
233
237
  error: null,
234
- config: Object.assign(Object.assign({}, config), { merkleHashVersion: 2, nodeManager: createNodeManager({
238
+ config: Object.assign(Object.assign({}, config), { merkleHashVersion: MERKLE_HASH_VERSIONS.ONE, nodeManager: createNodeManager({
235
239
  nodeUrls: ["url1", "url2"],
236
240
  }), dappStatusPolling: setStatusPolling(), clusterAnchoringStatusPolling: setStatusPolling(), systemAnchoringStatusPolling: setStatusPolling() }),
237
241
  });
238
242
  }));
239
- it("singleEndpoint reties when error is returned", () => __awaiter(this, void 0, void 0, function* () {
243
+ it("singleEndpoint reties when error is returned", () => __awaiter(void 0, void 0, void 0, function* () {
240
244
  yield testSingleEndpoint({
241
245
  numberOfRetries: 3,
242
246
  statusCode: null,
243
247
  error: new Error(),
244
- config: Object.assign(Object.assign({}, config), { merkleHashVersion: 2, nodeManager: createNodeManager({
248
+ config: Object.assign(Object.assign({}, config), { merkleHashVersion: MERKLE_HASH_VERSIONS.ONE, nodeManager: createNodeManager({
245
249
  nodeUrls: ["url1", "url2"],
246
250
  }), dappStatusPolling: setStatusPolling(), clusterAnchoringStatusPolling: setStatusPolling(), systemAnchoringStatusPolling: setStatusPolling() }),
247
251
  });
248
252
  }));
249
- it("singleEndpoint throws an error when no endpoint is found", () => __awaiter(this, void 0, void 0, function* () {
253
+ it("singleEndpoint throws an error when no endpoint is found", () => __awaiter(void 0, void 0, void 0, function* () {
250
254
  const nodeManager = createNodeManager({
251
255
  nodeUrls: ["url1", "url2"],
252
256
  });
253
- const nodeManagetGetNodeStub = sinon
254
- .stub(nodeManager, "getNode")
255
- .returns(null);
257
+ const nodeManagerSpy = jest.spyOn(nodeManager, "getNode").mockReturnValue(null);
256
258
  yield expect(singleEndpoint({
257
259
  method: Method.GET,
258
260
  path: "/path",
259
261
  config: Object.assign(Object.assign({}, config), { nodeManager: nodeManager }),
260
- })).to.be.rejectedWith("Cannot get endpoint. Node not found!");
261
- expect(nodeManagetGetNodeStub.calledOnce).to.be.true;
262
+ })).rejects.toThrow("Cannot get endpoint. Node not found!");
263
+ expect(nodeManagerSpy).toHaveBeenCalledTimes(1);
262
264
  }));
263
265
  });
264
- describe("QueryMajority", function () {
266
+ describe("QueryMajority", () => {
265
267
  const config = {
266
268
  endpointPool: [
267
269
  { url: "url1", whenAvailable: 0 },
@@ -277,34 +279,46 @@ describe("Failover strategies", function () {
277
279
  directoryChainRid: mockStringDirectoryChainRid,
278
280
  };
279
281
  const resolveRequestsAs = (responses) => {
280
- responses.forEach((response, index) => {
281
- mockHandleRequest.onCall(index).resolves({
282
- error: response.error,
283
- statusCode: response.statusCode,
284
- rspBody: response.rspBody,
285
- });
282
+ const handleRequestSpy = jest.spyOn(httpUtils, "handleRequest");
283
+ responses.forEach(response => {
284
+ if (response.error) {
285
+ handleRequestSpy.mockImplementationOnce(() => __awaiter(void 0, void 0, void 0, function* () {
286
+ throw response.error;
287
+ }));
288
+ }
289
+ else {
290
+ handleRequestSpy.mockImplementationOnce(() => __awaiter(void 0, void 0, void 0, function* () {
291
+ return ({
292
+ error: null,
293
+ statusCode: response.statusCode,
294
+ rspBody: response.rspBody,
295
+ });
296
+ }));
297
+ }
286
298
  });
299
+ return handleRequestSpy;
287
300
  };
288
- it("Should return a succesfull response as soon as it gets an BFT-majority of successful responses", () => __awaiter(this, void 0, void 0, function* () {
289
- resolveRequestsAs([
301
+ it("Should return a succesfull response as soon as it gets an BFT-majority of successful responses", () => __awaiter(void 0, void 0, void 0, function* () {
302
+ const mockRequests = [
290
303
  { error: null, statusCode: 200, rspBody: "response2" },
291
304
  { error: null, statusCode: 200, rspBody: "response1" },
292
305
  { error: null, statusCode: 200, rspBody: "response1" },
293
306
  { error: null, statusCode: 200, rspBody: "response3" },
294
307
  { error: null, statusCode: 200, rspBody: "response1" },
295
- ]);
308
+ ];
309
+ const handleRequestSpy = resolveRequestsAs(mockRequests);
296
310
  const urls = ["url1", "url2", "url3", "url4", "url5"];
297
311
  const result = yield queryMajority({
298
312
  method: Method.GET,
299
313
  path: "/path",
300
- config: Object.assign(Object.assign({}, config), { merkleHashVersion: 2, nodeManager: createNodeManager({
314
+ config: Object.assign(Object.assign({}, config), { merkleHashVersion: MERKLE_HASH_VERSIONS.ONE, nodeManager: createNodeManager({
301
315
  nodeUrls: urls,
302
316
  }), dappStatusPolling: setStatusPolling(), clusterAnchoringStatusPolling: setStatusPolling(), systemAnchoringStatusPolling: setStatusPolling() }),
303
317
  });
304
- expect(result.rspBody).to.equal("response1");
305
- expect(mockHandleRequest.callCount).to.equal(urls.length);
318
+ expect(result.rspBody).toEqual("response1");
319
+ expect(handleRequestSpy).toHaveBeenCalledTimes(urls.length);
306
320
  }));
307
- it("should when the failureThreshold is reached return the first failure if there are any.", () => __awaiter(this, void 0, void 0, function* () {
321
+ it("should when the failureThreshold is reached return the first failure if there are any.", () => __awaiter(void 0, void 0, void 0, function* () {
308
322
  resolveRequestsAs([
309
323
  { error: null, statusCode: 200, rspBody: "success - response 1" },
310
324
  { error: null, statusCode: 200, rspBody: "success - response 2" },
@@ -315,38 +329,30 @@ describe("Failover strategies", function () {
315
329
  const result = yield queryMajority({
316
330
  method: Method.GET,
317
331
  path: "/path",
318
- config: Object.assign(Object.assign({}, config), { merkleHashVersion: 2, nodeManager: createNodeManager({
332
+ config: Object.assign(Object.assign({}, config), { merkleHashVersion: MERKLE_HASH_VERSIONS.ONE, nodeManager: createNodeManager({
319
333
  nodeUrls: urls,
320
334
  }), dappStatusPolling: setStatusPolling(), clusterAnchoringStatusPolling: setStatusPolling(), systemAnchoringStatusPolling: setStatusPolling() }),
321
335
  });
322
- expect(result.rspBody).to.equal("fail - response 1");
336
+ expect(result.rspBody).toEqual("fail - response 1");
323
337
  }));
324
- it("should when the failureThreshold is reached throw the first error, if there are no failures.", () => __awaiter(this, void 0, void 0, function* () {
338
+ it("should when the failureThreshold is reached throw the first error, if there are no failures", () => __awaiter(void 0, void 0, void 0, function* () {
325
339
  const clientErrorMessage = "client error";
326
340
  resolveRequestsAs([
327
341
  { error: null, statusCode: 200, rspBody: "success - response 1" },
328
342
  { error: null, statusCode: 200, rspBody: "success - response 2" },
343
+ { error: new Error(clientErrorMessage), statusCode: 500, rspBody: "" },
344
+ { error: new Error(clientErrorMessage), statusCode: 500, rspBody: "" },
329
345
  ]);
330
- mockHandleRequest.onCall(2).rejects(new Error(clientErrorMessage));
331
- mockHandleRequest.onCall(3).rejects(new Error(clientErrorMessage));
332
346
  const urls = ["url1", "url2", "url3", "url4"];
333
- let requestError;
334
- try {
335
- yield queryMajority({
336
- method: Method.GET,
337
- path: "/path",
338
- config: Object.assign(Object.assign({}, config), { merkleHashVersion: 2, endpointPool: urls.map(url => ({ url, whenAvailable: 0 })), nodeManager: createNodeManager({
339
- nodeUrls: urls,
340
- }), dappStatusPolling: setStatusPolling(), clusterAnchoringStatusPolling: setStatusPolling(), systemAnchoringStatusPolling: setStatusPolling() }),
341
- });
342
- }
343
- catch (error) {
344
- requestError = error;
345
- }
346
- expect(requestError).to.not.be.null;
347
- expect(requestError.message).to.equal(clientErrorMessage);
347
+ yield expect(queryMajority({
348
+ method: Method.GET,
349
+ path: "/path",
350
+ config: Object.assign(Object.assign({}, config), { merkleHashVersion: MERKLE_HASH_VERSIONS.ONE, endpointPool: urls.map(url => ({ url, whenAvailable: 0 })), nodeManager: createNodeManager({
351
+ nodeUrls: urls,
352
+ }), dappStatusPolling: setStatusPolling(), clusterAnchoringStatusPolling: setStatusPolling(), systemAnchoringStatusPolling: setStatusPolling() }),
353
+ })).rejects.toThrow(clientErrorMessage);
348
354
  }));
349
- it("should throw an error if no consensus could be reached.", () => __awaiter(this, void 0, void 0, function* () {
355
+ it("should throw an error if no consensus could be reached.", () => __awaiter(void 0, void 0, void 0, function* () {
350
356
  resolveRequestsAs([
351
357
  { error: null, statusCode: 200, rspBody: "response1" },
352
358
  { error: null, statusCode: 200, rspBody: "response2" },
@@ -359,7 +365,7 @@ describe("Failover strategies", function () {
359
365
  yield queryMajority({
360
366
  method: Method.GET,
361
367
  path: "/path",
362
- config: Object.assign(Object.assign({}, config), { merkleHashVersion: 2, endpointPool: urls.map(url => ({ url, whenAvailable: 0 })), nodeManager: createNodeManager({
368
+ config: Object.assign(Object.assign({}, config), { merkleHashVersion: MERKLE_HASH_VERSIONS.ONE, endpointPool: urls.map(url => ({ url, whenAvailable: 0 })), nodeManager: createNodeManager({
363
369
  nodeUrls: urls,
364
370
  }), dappStatusPolling: setStatusPolling(), clusterAnchoringStatusPolling: setStatusPolling(), systemAnchoringStatusPolling: setStatusPolling() }),
365
371
  });
@@ -367,26 +373,28 @@ describe("Failover strategies", function () {
367
373
  catch (error) {
368
374
  requestError = error;
369
375
  }
370
- expect(requestError).to.not.be.null;
371
- expect(requestError.message).to.equal(errorMessages.NO_CONSENSUS);
376
+ expect(requestError).not.toBe(null);
377
+ expect(requestError.message).toEqual(errorMessages.NO_CONSENSUS);
372
378
  }));
373
- it("should throw timout error if takes longer than 15000 ms min for first requsts to resolve.", () => __awaiter(this, void 0, void 0, function* () {
379
+ it("throws timeout error if takes longer than 15000 ms min for first requsts to resolve", () => __awaiter(void 0, void 0, void 0, function* () {
374
380
  const urls = ["url1", "url2", "url3", "url4"];
375
- for (let i = 0; i < urls.length; i++) {
376
- mockHandleRequest.onCall(i).callsFake(() => new Promise(resolve => {
377
- setTimeout(() => resolve({
378
- error: null,
379
- statusCode: 200,
380
- rspBody: `response${i + 1}`,
381
- }), 16000);
381
+ urls.forEach((url, i) => {
382
+ jest.spyOn(httpUtils, "handleRequest").mockImplementationOnce(() => new Promise(resolve => {
383
+ setTimeout(() => {
384
+ resolve({
385
+ error: null,
386
+ statusCode: 200,
387
+ rspBody: `response${i + 1}`,
388
+ });
389
+ }, 16000);
382
390
  }));
383
- }
391
+ });
384
392
  let requestError;
385
393
  try {
386
394
  yield queryMajority({
387
395
  method: Method.GET,
388
396
  path: "/path",
389
- config: Object.assign(Object.assign({}, config), { merkleHashVersion: 2, endpointPool: urls.map(url => ({ url, whenAvailable: 0 })), nodeManager: createNodeManager({
397
+ config: Object.assign(Object.assign({}, config), { merkleHashVersion: MERKLE_HASH_VERSIONS.ONE, endpointPool: urls.map(url => ({ url, whenAvailable: 0 })), nodeManager: createNodeManager({
390
398
  nodeUrls: urls,
391
399
  }), dappStatusPolling: setStatusPolling(), clusterAnchoringStatusPolling: setStatusPolling(), systemAnchoringStatusPolling: setStatusPolling() }),
392
400
  });
@@ -394,10 +402,10 @@ describe("Failover strategies", function () {
394
402
  catch (error) {
395
403
  requestError = error;
396
404
  }
397
- expect(requestError).not.to.equal("Timeout exceeded");
398
- }));
405
+ expect(requestError).not.toBe("Timeout exceeded");
406
+ }), 20000);
399
407
  });
400
- describe("RetryRequest", function () {
408
+ describe("RetryRequest", () => {
401
409
  const config = {
402
410
  endpointPool: [{ url: "url1", whenAvailable: 0 }],
403
411
  blockchainRid: "brid",
@@ -408,8 +416,8 @@ describe("Failover strategies", function () {
408
416
  attemptInterval: 100,
409
417
  unreachableDuration: 1000,
410
418
  };
411
- it("update the endpointpool if a endpoint is not responding", () => __awaiter(this, void 0, void 0, function* () {
412
- mockHandleRequest.resolves({
419
+ it("update the endpointpool if a endpoint is not responding", () => __awaiter(void 0, void 0, void 0, function* () {
420
+ jest.spyOn(httpUtils, "handleRequest").mockResolvedValue({
413
421
  error: null,
414
422
  statusCode: 500,
415
423
  rspBody: "",
@@ -423,7 +431,7 @@ describe("Failover strategies", function () {
423
431
  config: Object.assign(Object.assign({}, config), { nodeManager }),
424
432
  validateStatusCode: statusCode => ![500, 503].includes(statusCode),
425
433
  });
426
- expect(nodeManager.nodes[0].whenAvailable).to.not.equal(0);
434
+ expect(nodeManager.nodes[0].whenAvailable).toBe(0); //nodes are no longer made unavailable on 500 errors
427
435
  }));
428
436
  });
429
437
  });
@@ -1 +1 @@
1
- {"version":3,"file":"failoverStrategies.test.js","sourceRoot":"","sources":["../../../test/unit/failoverStrategies.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"failoverStrategies.test.js","sourceRoot":"","sources":["../../../test/unit/failoverStrategies.test.ts"],"names":[],"mappings":"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"}