postchain-client 1.22.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (359) hide show
  1. package/README.md +5 -0
  2. package/built/cjs/index.js +2346 -2600
  3. package/built/cjs/index.js.map +1 -1
  4. package/built/esm/index.js +32402 -32650
  5. package/built/esm/index.js.map +1 -1
  6. package/built/index.d.ts +3 -7
  7. package/built/index.js +2 -9
  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.js.map +1 -1
  13. package/built/src/ICCF/types.d.ts +4 -1
  14. package/built/src/ICCF/utils.js +2 -2
  15. package/built/src/ICCF/utils.js.map +1 -1
  16. package/built/src/blockchainClient/blockchainClient.js +51 -52
  17. package/built/src/blockchainClient/blockchainClient.js.map +1 -1
  18. package/built/src/blockchainClient/clientStub.js +18 -16
  19. package/built/src/blockchainClient/clientStub.js.map +1 -1
  20. package/built/src/blockchainClient/enums.d.ts +5 -0
  21. package/built/src/blockchainClient/enums.js +6 -0
  22. package/built/src/blockchainClient/enums.js.map +1 -1
  23. package/built/src/blockchainClient/errors.d.ts +20 -0
  24. package/built/src/blockchainClient/errors.js +41 -0
  25. package/built/src/blockchainClient/errors.js.map +1 -1
  26. package/built/src/{restclient → blockchainClient}/failoverStrategies.d.ts +14 -0
  27. package/built/src/{restclient → blockchainClient}/failoverStrategies.js +102 -23
  28. package/built/src/blockchainClient/failoverStrategies.js.map +1 -0
  29. package/built/src/blockchainClient/httpUtil.d.ts +4 -0
  30. package/built/src/{restclient → blockchainClient}/httpUtil.js +27 -23
  31. package/built/src/blockchainClient/httpUtil.js.map +1 -0
  32. package/built/src/blockchainClient/interface.d.ts +48 -59
  33. package/built/src/blockchainClient/nodeManager.js.map +1 -0
  34. package/built/src/blockchainClient/requestWithFailoverStrategy.d.ts +4 -0
  35. package/built/src/blockchainClient/requestWithFailoverStrategy.js +31 -0
  36. package/built/src/blockchainClient/requestWithFailoverStrategy.js.map +1 -0
  37. package/built/src/blockchainClient/types.d.ts +63 -20
  38. package/built/src/blockchainClient/utils.d.ts +37 -12
  39. package/built/src/blockchainClient/utils.js +136 -30
  40. package/built/src/blockchainClient/utils.js.map +1 -1
  41. package/built/src/blockchainClient/validation/merkleHash.js +2 -1
  42. package/built/src/blockchainClient/validation/merkleHash.js.map +1 -1
  43. package/built/src/blockchainClient/validation/rawGtx.d.ts +2 -0
  44. package/built/src/blockchainClient/validation/rawGtx.js +22 -0
  45. package/built/src/blockchainClient/validation/rawGtx.js.map +1 -0
  46. package/built/src/blockchainClient/validation/requests.d.ts +5 -2
  47. package/built/src/blockchainClient/validation/requests.js +26 -0
  48. package/built/src/blockchainClient/validation/requests.js.map +1 -1
  49. package/built/src/blockchainClient/validation/transactionStatusReponse.d.ts +2 -0
  50. package/built/src/blockchainClient/validation/transactionStatusReponse.js +24 -0
  51. package/built/src/blockchainClient/validation/transactionStatusReponse.js.map +1 -0
  52. package/built/src/blockchainClient/validation/txRid.js +1 -1
  53. package/built/src/blockchainClient/validation/txRid.js.map +1 -1
  54. package/built/src/encryption/encryption.d.ts +0 -1
  55. package/built/src/encryption/encryption.js +0 -2
  56. package/built/src/encryption/encryption.js.map +1 -1
  57. package/built/src/formatter.d.ts +5 -7
  58. package/built/src/formatter.js +10 -29
  59. package/built/src/formatter.js.map +1 -1
  60. package/built/src/gtv/index.d.ts +2 -1
  61. package/built/src/gtv/index.js.map +1 -1
  62. package/built/src/gtx/errors.d.ts +2 -1
  63. package/built/src/gtx/errors.js.map +1 -1
  64. package/built/src/gtx/gtx.d.ts +5 -2
  65. package/built/src/gtx/gtx.js +0 -7
  66. package/built/src/gtx/gtx.js.map +1 -1
  67. package/built/src/gtx/serialization.d.ts +0 -1
  68. package/built/src/gtx/serialization.js +0 -1
  69. package/built/src/gtx/serialization.js.map +1 -1
  70. package/built/src/gtx/types.d.ts +0 -8
  71. package/built/src/logger.d.ts +6 -9
  72. package/built/src/logger.js +8 -14
  73. package/built/src/logger.js.map +1 -1
  74. package/built/src/merkle/merkleHelper.d.ts +0 -1
  75. package/built/src/merkle/merkleHelper.js +0 -1
  76. package/built/src/merkle/merkleHelper.js.map +1 -1
  77. package/built/src/promiEvent/promiEventEmitter.d.ts +1 -8
  78. package/built/src/promiEvent/promiEventEmitter.js.map +1 -1
  79. package/built/src/utils/calculateTransactionRid.d.ts +1 -1
  80. package/built/src/utils/calculateTransactionRid.js +6 -6
  81. package/built/src/utils/calculateTransactionRid.js.map +1 -1
  82. package/built/src/utils/constants.d.ts +4 -0
  83. package/built/src/utils/constants.js +5 -0
  84. package/built/src/utils/constants.js.map +1 -0
  85. package/built/src/utils/decodeTransactionToGtx.d.ts +1 -1
  86. package/built/src/utils/decodeTransactionToGtx.js +4 -3
  87. package/built/src/utils/decodeTransactionToGtx.js.map +1 -1
  88. package/built/src/utils/encodeTransaction.d.ts +1 -1
  89. package/built/src/utils/encodeTransaction.js +4 -4
  90. package/built/src/utils/encodeTransaction.js.map +1 -1
  91. package/built/test/common/mocks.d.ts +118 -0
  92. package/built/test/common/mocks.js +239 -0
  93. package/built/test/common/mocks.js.map +1 -0
  94. package/built/test/{unit/gtx → common}/serializationtestobjects.d.ts +1 -1
  95. package/built/test/common/serializationtestobjects.js.map +1 -0
  96. package/built/test/common/setups.d.ts +27 -0
  97. package/built/test/common/setups.js +137 -0
  98. package/built/test/common/setups.js.map +1 -0
  99. package/built/test/{unit → common}/signatures.d.ts +0 -1
  100. package/built/test/{unit → common}/signatures.js +0 -1
  101. package/built/test/common/signatures.js.map +1 -0
  102. package/built/test/common/testData.js.map +1 -0
  103. package/built/test/{unit/validation → common}/validationMocks.d.ts +22 -2
  104. package/built/test/{unit/validation → common}/validationMocks.js +13 -1
  105. package/built/test/common/validationMocks.js.map +1 -0
  106. package/built/test/integration/clientGetBlockInfo.test.js +51 -0
  107. package/built/test/integration/clientGetBlockInfo.test.js.map +1 -0
  108. package/built/test/integration/clientGetRejectedTransactions.test.js +28 -0
  109. package/built/test/integration/clientGetRejectedTransactions.test.js.map +1 -0
  110. package/built/test/integration/clientGetTransaction.test.js +29 -0
  111. package/built/test/integration/clientGetTransaction.test.js.map +1 -0
  112. package/built/test/integration/clientGetTransactionStatus.test.js +71 -0
  113. package/built/test/integration/clientGetTransactionStatus.test.js.map +1 -0
  114. package/built/test/integration/clientGetWaitingTransaction.test.js +34 -0
  115. package/built/test/integration/clientGetWaitingTransaction.test.js.map +1 -0
  116. package/built/test/integration/clientGetWaitingTransactions.test.js +28 -0
  117. package/built/test/integration/clientGetWaitingTransactions.test.js.map +1 -0
  118. package/built/test/integration/clientIntegration.test.js +95 -0
  119. package/built/test/integration/clientIntegration.test.js.map +1 -0
  120. package/built/test/integration/clientQuery.test.js +380 -0
  121. package/built/test/integration/clientQuery.test.js.map +1 -0
  122. package/built/test/integration/clientSendTransaction.test.js +86 -0
  123. package/built/test/integration/clientSendTransaction.test.js.map +1 -0
  124. package/built/test/integration/clientSignAndSendUniqueTransaction.test.js +75 -0
  125. package/built/test/integration/clientSignAndSendUniqueTransaction.test.js.map +1 -0
  126. package/built/test/integration/clientSignTransaction.test.js +77 -0
  127. package/built/test/integration/clientSignTransaction.test.js.map +1 -0
  128. package/built/test/integration/{blockchainClientUtils.test.js → clientUtils.test.js} +13 -8
  129. package/built/test/integration/clientUtils.test.js.map +1 -0
  130. package/built/test/integration/createClientIntegration.test.js +158 -0
  131. package/built/test/integration/createClientIntegration.test.js.map +1 -0
  132. package/built/test/integration/encodeTransaction.test.js +3 -6
  133. package/built/test/integration/encodeTransaction.test.js.map +1 -1
  134. package/built/test/integration/getTransactionsInfo.test.js +17 -26
  135. package/built/test/integration/getTransactionsInfo.test.js.map +1 -1
  136. package/built/test/integration/signAndSendUniqueTransaction.test.js +26 -19
  137. package/built/test/integration/signAndSendUniqueTransaction.test.js.map +1 -1
  138. package/built/test/integrationChromiaNetwork/createIccfProofTx.test.js +59 -0
  139. package/built/test/integrationChromiaNetwork/createIccfProofTx.test.js.map +1 -0
  140. package/built/test/{integrationDevnet → integrationChromiaNetwork}/getAnchoringStatusForBlockRid.test.js +9 -15
  141. package/built/test/integrationChromiaNetwork/getAnchoringStatusForBlockRid.test.js.map +1 -0
  142. package/built/test/{integrationDevnet → integrationChromiaNetwork}/getTransactionConfirmationLevel.test.js +7 -13
  143. package/built/test/integrationChromiaNetwork/getTransactionConfirmationLevel.test.js.map +1 -0
  144. package/built/test/integrationChromiaNetwork/getTransactionStatus.test.js +45 -0
  145. package/built/test/integrationChromiaNetwork/getTransactionStatus.test.js.map +1 -0
  146. package/built/test/integrationChromiaNetwork/isBlockAnchored.test.d.ts +1 -0
  147. package/built/test/integrationChromiaNetwork/isBlockAnchored.test.js +35 -0
  148. package/built/test/integrationChromiaNetwork/isBlockAnchored.test.js.map +1 -0
  149. package/built/test/integrationChromiaNetwork/merkleHashIntegration.test.d.ts +1 -0
  150. package/built/test/integrationChromiaNetwork/merkleHashIntegration.test.js +134 -0
  151. package/built/test/integrationChromiaNetwork/merkleHashIntegration.test.js.map +1 -0
  152. package/built/test/integrationChromiaNetwork/nodeDiscovery.test.d.ts +1 -0
  153. package/built/test/integrationChromiaNetwork/nodeDiscovery.test.js +26 -0
  154. package/built/test/integrationChromiaNetwork/nodeDiscovery.test.js.map +1 -0
  155. package/built/test/integrationChromiaNetwork/requestWithFailoverStrategy.test.d.ts +1 -0
  156. package/built/test/integrationChromiaNetwork/requestWithFailoverStrategy.test.js +84 -0
  157. package/built/test/integrationChromiaNetwork/requestWithFailoverStrategy.test.js.map +1 -0
  158. package/built/test/integrationChromiaNetwork/signAndSendUniqueTransaction.test.d.ts +1 -0
  159. package/built/test/{integrationDevnet → integrationChromiaNetwork}/signAndSendUniqueTransaction.test.js +27 -44
  160. package/built/test/integrationChromiaNetwork/signAndSendUniqueTransaction.test.js.map +1 -0
  161. package/built/test/manual/iccfManually.test.js +18 -27
  162. package/built/test/manual/iccfManually.test.js.map +1 -1
  163. package/built/test/unit/ICCF/iccf.test.js +63 -158
  164. package/built/test/unit/ICCF/iccf.test.js.map +1 -1
  165. package/built/test/unit/ICCF/iccfProofMaterialBuilder.test.d.ts +1 -2
  166. package/built/test/unit/ICCF/iccfProofMaterialBuilder.test.js +101 -296
  167. package/built/test/unit/ICCF/iccfProofMaterialBuilder.test.js.map +1 -1
  168. package/built/test/unit/blockchainClient/client.getRejectedTransactions.test.d.ts +1 -0
  169. package/built/test/unit/blockchainClient/client.getRejectedTransactions.test.js +48 -0
  170. package/built/test/unit/blockchainClient/client.getRejectedTransactions.test.js.map +1 -0
  171. package/built/test/unit/blockchainClient/client.getWaitingTransaction.test.d.ts +1 -0
  172. package/built/test/unit/blockchainClient/client.getWaitingTransaction.test.js +38 -0
  173. package/built/test/unit/blockchainClient/client.getWaitingTransaction.test.js.map +1 -0
  174. package/built/test/unit/blockchainClient/client.getWaitingTransactions.test.d.ts +1 -0
  175. package/built/test/unit/blockchainClient/client.getWaitingTransactions.test.js +30 -0
  176. package/built/test/unit/blockchainClient/client.getWaitingTransactions.test.js.map +1 -0
  177. package/built/test/unit/blockchainClient/client.test.d.ts +1 -0
  178. package/built/test/unit/blockchainClient/client.test.js +175 -0
  179. package/built/test/unit/blockchainClient/client.test.js.map +1 -0
  180. package/built/test/unit/blockchainClient/clientCustomStatusCodes.test.js +26 -32
  181. package/built/test/unit/blockchainClient/clientCustomStatusCodes.test.js.map +1 -1
  182. package/built/test/unit/blockchainClient/getAnchoringStatusForBlockRid.test.js +26 -59
  183. package/built/test/unit/blockchainClient/getAnchoringStatusForBlockRid.test.js.map +1 -1
  184. package/built/test/unit/blockchainClient/getSystemAnchoringTransactionConfirmation.test.js +21 -38
  185. package/built/test/unit/blockchainClient/getSystemAnchoringTransactionConfirmation.test.js.map +1 -1
  186. package/built/test/unit/blockchainClient/getTransactionConfirmationLevel.test.js +77 -127
  187. package/built/test/unit/blockchainClient/getTransactionConfirmationLevel.test.js.map +1 -1
  188. package/built/test/unit/blockchainClient/sendTransaction.test.js +352 -675
  189. package/built/test/unit/blockchainClient/sendTransaction.test.js.map +1 -1
  190. package/built/test/unit/blockchainClient/setMerkleVersion.test.js +14 -28
  191. package/built/test/unit/blockchainClient/setMerkleVersion.test.js.map +1 -1
  192. package/built/test/unit/blockchainClient/signAndSendUniqueTransactionPromiEvents.test.js +31 -98
  193. package/built/test/unit/blockchainClient/signAndSendUniqueTransactionPromiEvents.test.js.map +1 -1
  194. package/built/test/unit/blockchainClient/statusPollIntervals.test.js +34 -54
  195. package/built/test/unit/blockchainClient/statusPollIntervals.test.js.map +1 -1
  196. package/built/test/unit/blockchainClient/util.test.js +74 -133
  197. package/built/test/unit/blockchainClient/util.test.js.map +1 -1
  198. package/built/test/unit/decodeTransactionToGtx.test.js +3 -4
  199. package/built/test/unit/decodeTransactionToGtx.test.js.map +1 -1
  200. package/built/test/unit/dump.test.js +2 -3
  201. package/built/test/unit/dump.test.js.map +1 -1
  202. package/built/test/unit/encryption/encryption.test.js +23 -32
  203. package/built/test/unit/encryption/encryption.test.js.map +1 -1
  204. package/built/test/unit/failoverStrategies.test.js +122 -114
  205. package/built/test/unit/failoverStrategies.test.js.map +1 -1
  206. package/built/test/unit/formatter.test.js +38 -42
  207. package/built/test/unit/formatter.test.js.map +1 -1
  208. package/built/test/unit/gtv/gtvHash.test.js +5 -6
  209. package/built/test/unit/gtv/gtvHash.test.js.map +1 -1
  210. package/built/test/unit/gtx/checkGTXSignature.test.js +5 -7
  211. package/built/test/unit/gtx/checkGTXSignature.test.js.map +1 -1
  212. package/built/test/unit/gtx/newSignatureProvider.test.js +9 -10
  213. package/built/test/unit/gtx/newSignatureProvider.test.js.map +1 -1
  214. package/built/test/unit/gtx/serialization.test.js +37 -138
  215. package/built/test/unit/gtx/serialization.test.js.map +1 -1
  216. package/built/test/unit/httpUtil.test.js +27 -18
  217. package/built/test/unit/httpUtil.test.js.map +1 -1
  218. package/built/test/unit/logger.test.js +23 -25
  219. package/built/test/unit/logger.test.js.map +1 -1
  220. package/built/test/unit/merkle/merkleHelper/merkleHelperTest.js +10 -12
  221. package/built/test/unit/merkle/merkleHelper/merkleHelperTest.js.map +1 -1
  222. package/built/test/unit/nodeMananger.test.js +62 -74
  223. package/built/test/unit/nodeMananger.test.js.map +1 -1
  224. package/built/test/unit/setOrdering.test.js +9 -9
  225. package/built/test/unit/setOrdering.test.js.map +1 -1
  226. package/built/test/unit/stickyNode.test.js +44 -54
  227. package/built/test/unit/stickyNode.test.js.map +1 -1
  228. package/built/test/unit/validation/anchoringTransaction.test.js +7 -8
  229. package/built/test/unit/validation/anchoringTransaction.test.js.map +1 -1
  230. package/built/test/unit/validation/blockIdentifier.test.js +7 -9
  231. package/built/test/unit/validation/blockIdentifier.test.js.map +1 -1
  232. package/built/test/unit/validation/bufferSchema.test.js +4 -5
  233. package/built/test/unit/validation/bufferSchema.test.js.map +1 -1
  234. package/built/test/unit/validation/networkSettings.test.js +11 -13
  235. package/built/test/unit/validation/networkSettings.test.js.map +1 -1
  236. package/built/test/unit/validation/rawGtx.test.d.ts +1 -0
  237. package/built/test/unit/validation/rawGtx.test.js +84 -0
  238. package/built/test/unit/validation/rawGtx.test.js.map +1 -0
  239. package/built/test/unit/validation/requests.test.js +80 -74
  240. package/built/test/unit/validation/requests.test.js.map +1 -1
  241. package/built/test/unit/validation/signMethod.test.js +8 -10
  242. package/built/test/unit/validation/signMethod.test.js.map +1 -1
  243. package/built/test/unit/validation/statusObject.test.d.ts +1 -0
  244. package/built/test/unit/validation/statusObject.test.js +91 -0
  245. package/built/test/unit/validation/statusObject.test.js.map +1 -0
  246. package/built/test/unit/validation/txRid.test.js +7 -9
  247. package/built/test/unit/validation/txRid.test.js.map +1 -1
  248. package/built/umd/index.js +32517 -32771
  249. package/built/umd/index.js.map +1 -1
  250. package/changelog.md +52 -1
  251. package/package.json +22 -22
  252. package/built/src/chromia/chromiaClientProvider.d.ts +0 -9
  253. package/built/src/chromia/chromiaClientProvider.js +0 -36
  254. package/built/src/chromia/chromiaClientProvider.js.map +0 -1
  255. package/built/src/chromia/interfaces.d.ts +0 -4
  256. package/built/src/chromia/interfaces.js +0 -2
  257. package/built/src/chromia/interfaces.js.map +0 -1
  258. package/built/src/constants.d.ts +0 -3
  259. package/built/src/constants.js +0 -4
  260. package/built/src/constants.js.map +0 -1
  261. package/built/src/gtx/gtxclient.d.ts +0 -3
  262. package/built/src/gtx/gtxclient.js +0 -96
  263. package/built/src/gtx/gtxclient.js.map +0 -1
  264. package/built/src/gtx/interfaces.d.ts +0 -91
  265. package/built/src/gtx/interfaces.js +0 -2
  266. package/built/src/gtx/interfaces.js.map +0 -1
  267. package/built/src/restclient/enums.d.ts +0 -4
  268. package/built/src/restclient/enums.js +0 -6
  269. package/built/src/restclient/enums.js.map +0 -1
  270. package/built/src/restclient/errors.d.ts +0 -33
  271. package/built/src/restclient/errors.js +0 -63
  272. package/built/src/restclient/errors.js.map +0 -1
  273. package/built/src/restclient/failoverStrategies.js.map +0 -1
  274. package/built/src/restclient/httpUtil.d.ts +0 -6
  275. package/built/src/restclient/httpUtil.js.map +0 -1
  276. package/built/src/restclient/interfaces.d.ts +0 -68
  277. package/built/src/restclient/interfaces.js +0 -2
  278. package/built/src/restclient/interfaces.js.map +0 -1
  279. package/built/src/restclient/nodeManager.js.map +0 -1
  280. package/built/src/restclient/restclient.d.ts +0 -18
  281. package/built/src/restclient/restclient.js +0 -200
  282. package/built/src/restclient/restclient.js.map +0 -1
  283. package/built/src/restclient/restclientutil.d.ts +0 -32
  284. package/built/src/restclient/restclientutil.js +0 -141
  285. package/built/src/restclient/restclientutil.js.map +0 -1
  286. package/built/src/restclient/types.d.ts +0 -78
  287. package/built/src/restclient/types.js +0 -2
  288. package/built/src/restclient/types.js.map +0 -1
  289. package/built/test/integration/blockchainClientIntegration.test.js +0 -1075
  290. package/built/test/integration/blockchainClientIntegration.test.js.map +0 -1
  291. package/built/test/integration/blockchainClientUtils.test.js.map +0 -1
  292. package/built/test/integration/gtxClientIntegration.test.js +0 -334
  293. package/built/test/integration/gtxClientIntegration.test.js.map +0 -1
  294. package/built/test/integration/merkleIntegration.test.js +0 -138
  295. package/built/test/integration/merkleIntegration.test.js.map +0 -1
  296. package/built/test/integration/objectGenerator.d.ts +0 -3
  297. package/built/test/integration/objectGenerator.js +0 -17
  298. package/built/test/integration/objectGenerator.js.map +0 -1
  299. package/built/test/integration/restClientIntegration.test.js +0 -170
  300. package/built/test/integration/restClientIntegration.test.js.map +0 -1
  301. package/built/test/integration/testData.js.map +0 -1
  302. package/built/test/integrationDevnet/constants.d.ts +0 -1
  303. package/built/test/integrationDevnet/constants.js +0 -2
  304. package/built/test/integrationDevnet/constants.js.map +0 -1
  305. package/built/test/integrationDevnet/getAnchoringStatusForBlockRid.test.js.map +0 -1
  306. package/built/test/integrationDevnet/getTransactionConfirmationLevel.test.js.map +0 -1
  307. package/built/test/integrationDevnet/getTransactionStatus.test.js +0 -53
  308. package/built/test/integrationDevnet/getTransactionStatus.test.js.map +0 -1
  309. package/built/test/integrationDevnet/signAndSendUniqueTransaction.test.js.map +0 -1
  310. package/built/test/manual/chromiaClientProviderManually.test.js +0 -28
  311. package/built/test/manual/chromiaClientProviderManually.test.js.map +0 -1
  312. package/built/test/manual/restClientManually.test.js +0 -52
  313. package/built/test/manual/restClientManually.test.js.map +0 -1
  314. package/built/test/unit/ICCF/util.d.ts +0 -6
  315. package/built/test/unit/ICCF/util.js +0 -21
  316. package/built/test/unit/ICCF/util.js.map +0 -1
  317. package/built/test/unit/blockchainClient/blockchainClient.test.js +0 -287
  318. package/built/test/unit/blockchainClient/blockchainClient.test.js.map +0 -1
  319. package/built/test/unit/blockchainClient/helpers/sendTransaction.d.ts +0 -25
  320. package/built/test/unit/blockchainClient/helpers/sendTransaction.js +0 -56
  321. package/built/test/unit/blockchainClient/helpers/sendTransaction.js.map +0 -1
  322. package/built/test/unit/chromiaClientProvider.test.js +0 -70
  323. package/built/test/unit/chromiaClientProvider.test.js.map +0 -1
  324. package/built/test/unit/common/mocks.d.ts +0 -34
  325. package/built/test/unit/common/mocks.js +0 -69
  326. package/built/test/unit/common/mocks.js.map +0 -1
  327. package/built/test/unit/gtx/gtxClient.test.js +0 -97
  328. package/built/test/unit/gtx/gtxClient.test.js.map +0 -1
  329. package/built/test/unit/gtx/serializationtestobjects.js.map +0 -1
  330. package/built/test/unit/requestWithFailoverStrategy.test.js +0 -146
  331. package/built/test/unit/requestWithFailoverStrategy.test.js.map +0 -1
  332. package/built/test/unit/restClient.test.js +0 -389
  333. package/built/test/unit/restClient.test.js.map +0 -1
  334. package/built/test/unit/restClientUtil.test.js +0 -226
  335. package/built/test/unit/restClientUtil.test.js.map +0 -1
  336. package/built/test/unit/signatures.js.map +0 -1
  337. package/built/test/unit/validation/validationMocks.js.map +0 -1
  338. /package/built/src/{restclient → blockchainClient}/nodeManager.d.ts +0 -0
  339. /package/built/src/{restclient → blockchainClient}/nodeManager.js +0 -0
  340. /package/built/test/{unit/gtx → common}/serializationtestobjects.js +0 -0
  341. /package/built/test/{integration → common}/testData.d.ts +0 -0
  342. /package/built/test/{integration → common}/testData.js +0 -0
  343. /package/built/test/integration/{blockchainClientIntegration.test.d.ts → clientGetBlockInfo.test.d.ts} +0 -0
  344. /package/built/test/integration/{blockchainClientUtils.test.d.ts → clientGetRejectedTransactions.test.d.ts} +0 -0
  345. /package/built/test/integration/{gtxClientIntegration.test.d.ts → clientGetTransaction.test.d.ts} +0 -0
  346. /package/built/test/integration/{merkleIntegration.test.d.ts → clientGetTransactionStatus.test.d.ts} +0 -0
  347. /package/built/test/integration/{restClientIntegration.test.d.ts → clientGetWaitingTransaction.test.d.ts} +0 -0
  348. /package/built/test/{integrationDevnet/getAnchoringStatusForBlockRid.test.d.ts → integration/clientGetWaitingTransactions.test.d.ts} +0 -0
  349. /package/built/test/{integrationDevnet/getTransactionConfirmationLevel.test.d.ts → integration/clientIntegration.test.d.ts} +0 -0
  350. /package/built/test/{integrationDevnet/getTransactionStatus.test.d.ts → integration/clientQuery.test.d.ts} +0 -0
  351. /package/built/test/{integrationDevnet/signAndSendUniqueTransaction.test.d.ts → integration/clientSendTransaction.test.d.ts} +0 -0
  352. /package/built/test/{manual/chromiaClientProviderManually.test.d.ts → integration/clientSignAndSendUniqueTransaction.test.d.ts} +0 -0
  353. /package/built/test/{manual/restClientManually.test.d.ts → integration/clientSignTransaction.test.d.ts} +0 -0
  354. /package/built/test/{unit/blockchainClient/blockchainClient.test.d.ts → integration/clientUtils.test.d.ts} +0 -0
  355. /package/built/test/{unit/chromiaClientProvider.test.d.ts → integration/createClientIntegration.test.d.ts} +0 -0
  356. /package/built/test/{unit/gtx/gtxClient.test.d.ts → integrationChromiaNetwork/createIccfProofTx.test.d.ts} +0 -0
  357. /package/built/test/{unit/requestWithFailoverStrategy.test.d.ts → integrationChromiaNetwork/getAnchoringStatusForBlockRid.test.d.ts} +0 -0
  358. /package/built/test/{unit/restClient.test.d.ts → integrationChromiaNetwork/getTransactionConfirmationLevel.test.d.ts} +0 -0
  359. /package/built/test/{unit/restClientUtil.test.d.ts → integrationChromiaNetwork/getTransactionStatus.test.d.ts} +0 -0
@@ -7,126 +7,37 @@ 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 { expect } from "chai";
12
- import * as iccf from "../../../src/ICCF/IccfProofTxMaterialBuilder";
13
- import * as bc from "../../../src/blockchainClient/blockchainClient";
14
- import * as utils from "../../../src/ICCF/utils";
15
- import { encodeValue, encodeValueGtx } from "../../../src/gtx/serialization";
16
- import { createEncodedBlockHeaderArray, createRawGtx } from "./util";
10
+ import { encodeValue } from "../../../src/gtx/serialization";
11
+ import { createEncodedBlockHeaderArray, createMockIccfOpWithArgs, createRawGtx, getTestsClient, } from "../../common/setups";
17
12
  import { gtvHash } from "../../../src/gtv";
18
13
  import { rawGtxToGtx, toBuffer } from "../../../src/formatter";
19
14
  import { getDigestToSign } from "../../../src/gtx/gtx";
20
- import { BlockAnchoringException } from "../../../src/ICCF/error";
21
- import { FailoverStrategy } from "../../../src/blockchainClient/enums";
22
- import { createNodeManager } from "../../../src/restclient/nodeManager";
23
- import { mockAnchoringTransaction, mockStringDirectoryChainRid, mockThirtyTwoBytesBuffer, } from "../common/mocks";
24
- import { setStatusPolling } from "../../../src/blockchainClient/utils";
15
+ import { clientConfiguredToD1, mockAnchoringTransaction, mockBuffer, mockConfirmationProof, mockGtx, mockStringDirectoryChainRid, mockThirtyTwoBytesBuffer, } from "../../common/mocks";
16
+ import * as iccfUtils from "../../../src/ICCF/utils";
17
+ import * as iccf from "../../../src/ICCF/IccfProofTxMaterialBuilder";
18
+ import * as blockchainClient from "../../../src/blockchainClient/blockchainClient";
25
19
  const txToProveHashMismatch = Buffer.from("sample-tx-hash");
26
20
  const sourceBlockchainRid = "FCD29927AA06E75547036C8860633AF2D8DF8FF6C78F947A2D7C816CB13DC209";
27
21
  const targetBlockchainRid = "FCD29927AA06E75547036C8860633AF2D8DF8FF6C78F947A2D7C816CB13DC208";
28
22
  const iccfTxSigners = [Buffer.from("iccf-pubKey1"), Buffer.from("iccf-pubKey2")];
29
- const responseObjectAnchoringProof = {
30
- hash: Buffer.from("anchoring-hash"),
31
- blockHeader: Buffer.from("anchoring-header"),
32
- witness: Buffer.from("witness"),
33
- merkleProofTree: ["merkle"],
34
- txIndex: 0,
35
- };
36
- const anchoringChainInfo = {
23
+ const validAnchoringChainInfo = {
37
24
  anchoring_chain: Buffer.from("sample-anchoring-chain"),
38
25
  name: "anchoring chain",
39
26
  peers: [{ pubkey: Buffer.from("a"), api_url: "urls" }],
40
27
  };
41
- const mockGetConfirmationProof = sinon.stub();
42
- const mockQuery = sinon.stub();
43
- const mockSignTransaction = sinon.stub();
44
- const mockSendTransaction = sinon.stub();
45
- const mockSignAndSendTransaction = sinon.stub();
46
- const mockGetTransaction = sinon.stub();
47
- const mockGetTransactionStatus = sinon.stub();
48
- const mockSignAndSendUniqueTransaction = sinon.stub();
49
- const mockAddNop = sinon.stub();
50
- const mockGetTransactionRID = sinon.stub();
51
- const mockGetTransactionsInfo = sinon.stub();
52
- const mockGetTransactionInfo = sinon.stub();
53
- const mockGetTransactionCount = sinon.stub();
54
- const mockGetBlockInfo = sinon.stub();
55
- const mockGetLatestBlock = sinon.stub();
56
- const mockGetBlocksInfo = sinon.stub();
57
- const mockEncodeTransaction = sinon.stub();
58
- const mockDecodeTransactionToGTX = sinon.stub();
59
- const mockGetClientNodeURLPool = sinon.stub();
60
- const mockGetClusterAnchoringTransactionConfirmation = sinon.stub();
61
- const mockGetTransactionConfirmationLevel = sinon.stub();
62
- const mockGetSystemAnchoringTransactionConfirmation = sinon.stub();
63
- const mockGetAnchoringStatusForBlockRid = sinon.stub();
64
- export const clientConfiguredToD1 = {
65
- config: {
66
- nodeManager: createNodeManager({
67
- nodeUrls: ["url1"],
68
- }),
69
- endpointPool: [{ url: "url", whenAvailable: 0 }],
70
- blockchainRid: "aa",
71
- dappStatusPolling: setStatusPolling({ interval: 500, count: 1 }),
72
- clusterAnchoringStatusPolling: setStatusPolling(),
73
- systemAnchoringStatusPolling: setStatusPolling(),
74
- failoverStrategy: FailoverStrategy.AbortOnError,
75
- attemptsPerEndpoint: 3,
76
- attemptInterval: 3,
77
- unreachableDuration: 100,
78
- directoryChainRid: mockStringDirectoryChainRid,
79
- merkleHashVersion: 2,
80
- },
81
- query: mockQuery,
82
- signTransaction: mockSignTransaction,
83
- sendTransaction: mockSendTransaction,
84
- getTransaction: mockGetTransaction,
85
- getTransactionStatus: mockGetTransactionStatus,
86
- signAndSendUniqueTransaction: mockSignAndSendUniqueTransaction,
87
- addNop: mockAddNop,
88
- getTransactionsInfo: mockGetTransactionsInfo,
89
- getTransactionInfo: mockGetTransactionInfo,
90
- getTransactionCount: mockGetTransactionCount,
91
- getTransactionRid: mockGetTransactionRID,
92
- getBlockInfo: mockGetBlockInfo,
93
- getLatestBlock: mockGetLatestBlock,
94
- getBlocks: mockGetBlocksInfo,
95
- getBlocksInfo: mockGetBlocksInfo,
96
- encodeTransaction: mockEncodeTransaction,
97
- decodeTransactionToGtx: mockDecodeTransactionToGTX,
98
- getClientNodeUrlPool: mockGetClientNodeURLPool,
99
- getConfirmationProof: mockGetConfirmationProof,
100
- getClusterAnchoringTransactionConfirmation: mockGetClusterAnchoringTransactionConfirmation,
101
- getTransactionConfirmationLevel: mockGetTransactionConfirmationLevel,
102
- getSystemAnchoringTransactionConfirmation: mockGetSystemAnchoringTransactionConfirmation,
103
- getAppStructure: sinon.stub(),
104
- getAnchoringStatusForBlockRid: mockGetAnchoringStatusForBlockRid,
105
- };
106
- let mockGetClusterOfBlockchain = sinon.stub();
107
- let mockGetAnchoringTransactionForBlockRid = sinon.stub();
108
- let mockAwaitGetAnchoringTransactionForBlockRid = sinon.stub();
109
- let mockGetClusterInfo = sinon.stub();
110
- describe("iccfProofTxMaterialBuilder", () => __awaiter(void 0, void 0, void 0, function* () {
28
+ let client;
29
+ describe("iccfProofTxMaterialBuilder", () => {
30
+ beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
31
+ client = yield getTestsClient();
32
+ }));
111
33
  beforeEach(() => {
112
- mockGetAnchoringTransactionForBlockRid = sinon.stub(utils, "getAnchoringTransactionForBlockRid");
113
- mockAwaitGetAnchoringTransactionForBlockRid = sinon.stub(utils, "awaitGetAnchoringTransactionForBlockRid");
114
- mockGetClusterOfBlockchain = sinon.stub(utils, "getClusterOfBlockchain");
115
- mockGetClusterInfo = sinon.stub(utils, "getClusterInfo");
116
- const mockCreateClient = sinon.stub(bc, "createClient");
117
- mockCreateClient.resolves(clientConfiguredToD1);
118
- mockGetClusterInfo.resolves(anchoringChainInfo);
34
+ jest.clearAllMocks();
119
35
  });
120
36
  afterEach(() => {
121
- sinon.resetHistory();
122
- sinon.restore();
123
- mockGetConfirmationProof.reset();
124
- mockGetTransaction.reset();
125
- mockGetClusterInfo.reset();
126
- mockGetAnchoringTransactionForBlockRid.reset();
37
+ jest.restoreAllMocks();
127
38
  });
128
- describe("createIccfProofTx", () => __awaiter(void 0, void 0, void 0, function* () {
129
- it("should return iccfTx for intra-cluster operation", () => __awaiter(void 0, void 0, void 0, function* () {
39
+ describe("createIccfProofTx", () => {
40
+ it("returns iccfTx for intra-cluster operation", () => __awaiter(void 0, void 0, void 0, function* () {
130
41
  var _a, _b, _c;
131
42
  const rawGtx = createRawGtx("test", 0);
132
43
  const proofHash = gtvHash(rawGtx, 2);
@@ -137,56 +48,36 @@ describe("iccfProofTxMaterialBuilder", () => __awaiter(void 0, void 0, void 0, f
137
48
  const gtx = rawGtxToGtx(rawGtx);
138
49
  const txToProveRID = getDigestToSign(gtx, 2);
139
50
  const txToProveSigners = [];
140
- // Later: input instead of on call
141
- mockGetClusterOfBlockchain.onCall(0).resolves("sample-source-cluster");
142
- mockGetClusterOfBlockchain.onCall(1).resolves("sample-source-cluster");
143
- mockGetConfirmationProof.onCall(0).resolves(confirmationProofResponse);
144
- const result = yield iccf.createIccfProofTx(clientConfiguredToD1, txToProveRID, proofHash, txToProveSigners, sourceBlockchainRid, targetBlockchainRid, iccfTxSigners, false);
145
- expect(result).to.have.property("iccfTx");
146
- expect(result).to.not.have.property("verifiedTx");
147
- expect(result.iccfTx.operations[0].name).to.equal("iccf_proof");
148
- const args = ((_c = (_b = (_a = result.iccfTx) === null || _a === void 0 ? void 0 : _a.operations) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.args) || [];
149
- const expectedArgs = [
51
+ jest.spyOn(blockchainClient, "createClient").mockResolvedValue(client);
52
+ jest.spyOn(client, "getConfirmationProof").mockResolvedValue(mockConfirmationProof);
53
+ jest
54
+ .spyOn(iccfUtils, "fetchAndVerifyTransaction")
55
+ .mockResolvedValue({ verifiedTx: mockGtx, verifiedTxHash: mockBuffer });
56
+ jest
57
+ .spyOn(iccfUtils, "getClusterOfBlockchain")
58
+ .mockResolvedValueOnce("source-cluster")
59
+ .mockResolvedValueOnce("source-cluster");
60
+ jest
61
+ .spyOn(iccfUtils, "composeProofTransactionObject")
62
+ .mockReturnValue(createMockIccfOpWithArgs([
150
63
  toBuffer(sourceBlockchainRid),
151
64
  proofHash,
152
65
  encodeValue(confirmationProofResponse),
153
- ];
154
- for (let i = 0; i < (args === null || args === void 0 ? void 0 : args.length); i++) {
155
- expect(args[i]).to.deep.equal(expectedArgs[i]);
156
- }
157
- }));
158
- it("should return iccfTx for intra-cluster operation, mismatching", () => __awaiter(void 0, void 0, void 0, function* () {
159
- var _d, _e, _f;
160
- const rawGtx = createRawGtx("test", 0);
161
- const proofHash = gtvHash(rawGtx, 2);
162
- const confirmationProofResponse = {
163
- hash: proofHash,
164
- blockHeader: createEncodedBlockHeaderArray(),
165
- };
166
- const gtx = rawGtxToGtx(rawGtx);
167
- const txToProveRID = getDigestToSign(gtx, 2);
168
- const txToProveSigners = [];
169
- // Later: input instead of on call
170
- mockGetClusterOfBlockchain.onCall(0).resolves("sample-source-cluster");
171
- mockGetClusterOfBlockchain.onCall(1).resolves("sample-source-cluster");
172
- mockGetConfirmationProof.onCall(0).resolves(confirmationProofResponse);
173
- mockGetTransaction.resolves(encodeValueGtx(rawGtx));
174
- const result = yield iccf.createIccfProofTx(clientConfiguredToD1, txToProveRID, txToProveHashMismatch, txToProveSigners, sourceBlockchainRid, targetBlockchainRid, iccfTxSigners, false);
175
- expect(result).to.have.property("iccfTx");
176
- expect(result).to.not.have.property("verifiedTx");
177
- expect(result.iccfTx.operations[0].name).to.equal("iccf_proof");
178
- const args = ((_f = (_e = (_d = result.iccfTx) === null || _d === void 0 ? void 0 : _d.operations) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.args) || [];
66
+ ]));
67
+ const result = yield iccf.createIccfProofTx(clientConfiguredToD1, txToProveRID, proofHash, txToProveSigners, sourceBlockchainRid, targetBlockchainRid, iccfTxSigners, false);
68
+ expect(result).toHaveProperty("iccfTx");
69
+ expect(result).not.toHaveProperty("verifiedTx");
70
+ expect(result.iccfTx.operations[0].name).toBe("iccf_proof");
71
+ const args = ((_c = (_b = (_a = result.iccfTx) === null || _a === void 0 ? void 0 : _a.operations) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.args) || [];
179
72
  const expectedArgs = [
180
73
  toBuffer(sourceBlockchainRid),
181
74
  proofHash,
182
75
  encodeValue(confirmationProofResponse),
183
76
  ];
184
- for (let i = 0; i < (args === null || args === void 0 ? void 0 : args.length); i++) {
185
- expect(args[i]).to.deep.equal(expectedArgs[i]);
186
- }
77
+ expect(args).toStrictEqual(expectedArgs);
187
78
  }));
188
- it("should return iccfTx for intra-network operation", () => __awaiter(void 0, void 0, void 0, function* () {
189
- var _g, _h, _j;
79
+ it("returns iccfTx for intra-cluster operation, mismatching", () => __awaiter(void 0, void 0, void 0, function* () {
80
+ var _d, _e, _f;
190
81
  const rawGtx = createRawGtx("test", 0);
191
82
  const proofHash = gtvHash(rawGtx, 2);
192
83
  const confirmationProofResponse = {
@@ -196,178 +87,92 @@ describe("iccfProofTxMaterialBuilder", () => __awaiter(void 0, void 0, void 0, f
196
87
  const gtx = rawGtxToGtx(rawGtx);
197
88
  const txToProveRID = getDigestToSign(gtx, 2);
198
89
  const txToProveSigners = [];
199
- // input instead of on call
200
- mockGetClusterOfBlockchain.onCall(0).resolves("sample-source-cluster");
201
- mockGetClusterOfBlockchain.onCall(1).resolves("sample-target-cluster");
202
- mockGetConfirmationProof.onCall(0).resolves(confirmationProofResponse);
203
- mockGetConfirmationProof.onCall(1).resolves(responseObjectAnchoringProof);
204
- mockAwaitGetAnchoringTransactionForBlockRid.resolves(mockAnchoringTransaction);
205
- mockGetTransaction.resolves(encodeValueGtx(rawGtx));
206
- const result = yield iccf.createIccfProofTx(clientConfiguredToD1, txToProveRID, proofHash, txToProveSigners, sourceBlockchainRid, targetBlockchainRid, iccfTxSigners, false);
207
- expect(result).to.have.property("iccfTx");
208
- expect(result.iccfTx).to.have.property("operations");
209
- expect(result.iccfTx.operations[0].name).to.equal("iccf_proof");
210
- const args = ((_j = (_h = (_g = result.iccfTx) === null || _g === void 0 ? void 0 : _g.operations) === null || _h === void 0 ? void 0 : _h[0]) === null || _j === void 0 ? void 0 : _j.args) || [];
211
- const expectedArgs = [
90
+ jest.spyOn(blockchainClient, "createClient").mockResolvedValue(client);
91
+ jest.spyOn(client, "getConfirmationProof").mockResolvedValue(mockConfirmationProof);
92
+ jest
93
+ .spyOn(iccfUtils, "fetchAndVerifyTransaction")
94
+ .mockResolvedValue({ verifiedTx: mockGtx, verifiedTxHash: mockBuffer });
95
+ jest
96
+ .spyOn(iccfUtils, "getClusterOfBlockchain")
97
+ .mockResolvedValueOnce("source-cluster")
98
+ .mockResolvedValueOnce("source-cluster");
99
+ jest
100
+ .spyOn(iccfUtils, "composeProofTransactionObject")
101
+ .mockReturnValue(createMockIccfOpWithArgs([
212
102
  toBuffer(sourceBlockchainRid),
213
103
  proofHash,
214
104
  encodeValue(confirmationProofResponse),
215
- mockAnchoringTransaction.txData,
216
- mockAnchoringTransaction.txOpIndex,
217
- encodeValue(responseObjectAnchoringProof),
218
- ];
219
- for (let i = 0; i < (args === null || args === void 0 ? void 0 : args.length); i++) {
220
- expect(args[i]).to.deep.equal(expectedArgs[i]);
221
- }
222
- expect(result).to.have.property("verifiedTx");
223
- expect(result.verifiedTx).to.equal(null);
224
- }));
225
- it("should return iccfTx for intra-network operation, mismatch", () => __awaiter(void 0, void 0, void 0, function* () {
226
- var _k, _l, _m;
227
- const rawGtx = createRawGtx("test", 0);
228
- const proofHash = gtvHash(rawGtx, 2);
229
- const confirmationProofResponse = {
230
- hash: proofHash,
231
- blockHeader: createEncodedBlockHeaderArray(),
232
- };
233
- const gtx = rawGtxToGtx(rawGtx);
234
- const txToProveRID = getDigestToSign(gtx, 2);
235
- const txToProveSigners = [];
236
- // input instead of on call
237
- mockGetClusterOfBlockchain.onCall(0).resolves("sample-source-cluster");
238
- mockGetClusterOfBlockchain.onCall(1).resolves("sample-target-cluster");
239
- mockGetConfirmationProof.onCall(0).resolves(confirmationProofResponse);
240
- mockGetConfirmationProof.onCall(1).resolves(responseObjectAnchoringProof);
241
- mockAwaitGetAnchoringTransactionForBlockRid.resolves(mockAnchoringTransaction);
242
- mockGetTransaction.resolves(encodeValueGtx(rawGtx));
105
+ ]));
243
106
  const result = yield iccf.createIccfProofTx(clientConfiguredToD1, txToProveRID, txToProveHashMismatch, txToProveSigners, sourceBlockchainRid, targetBlockchainRid, iccfTxSigners, false);
244
- expect(result).to.have.property("iccfTx");
245
- expect(result.iccfTx.operations[0].name).to.equal("iccf_proof");
246
- const args = ((_m = (_l = (_k = result.iccfTx) === null || _k === void 0 ? void 0 : _k.operations) === null || _l === void 0 ? void 0 : _l[0]) === null || _m === void 0 ? void 0 : _m.args) || [];
107
+ expect(result).toHaveProperty("iccfTx");
108
+ expect(result).not.toHaveProperty("verifiedTx");
109
+ expect(result.iccfTx.operations[0].name).toBe("iccf_proof");
110
+ const args = ((_f = (_e = (_d = result.iccfTx) === null || _d === void 0 ? void 0 : _d.operations) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.args) || [];
247
111
  const expectedArgs = [
248
112
  toBuffer(sourceBlockchainRid),
249
113
  proofHash,
250
114
  encodeValue(confirmationProofResponse),
251
- mockAnchoringTransaction.txData,
252
- mockAnchoringTransaction.txOpIndex,
253
- encodeValue(responseObjectAnchoringProof),
254
115
  ];
255
- for (let i = 0; i < (args === null || args === void 0 ? void 0 : args.length); i++) {
256
- expect(args[i]).to.deep.equal(expectedArgs[i]);
257
- }
258
- expect(result).to.have.property("verifiedTx");
259
- expect(result.verifiedTx).to.deep.equal(gtx);
116
+ expect(args).toStrictEqual(expectedArgs);
260
117
  }));
261
- it("should throw a BlockAnchoringException if clusterAnchoredTxResponse is invalid", () => __awaiter(void 0, void 0, void 0, function* () {
262
- const rawGtx = createRawGtx("test", 0);
263
- const proofHash = gtvHash(rawGtx, 2);
264
- const confirmationProofResponse = {
265
- hash: proofHash,
266
- blockHeader: createEncodedBlockHeaderArray(),
267
- };
268
- const gtx = rawGtxToGtx(rawGtx);
269
- const txToProveRID = getDigestToSign(gtx, 2);
270
- const txToProveSigners = [];
271
- // input instead of on call
272
- mockGetClusterOfBlockchain.onCall(0).resolves("sample-source-cluster");
273
- mockGetClusterOfBlockchain.onCall(1).resolves("sample-target-cluster");
274
- mockGetConfirmationProof.onCall(0).resolves(confirmationProofResponse);
275
- mockGetConfirmationProof.onCall(1).resolves(responseObjectAnchoringProof);
276
- mockGetAnchoringTransactionForBlockRid.resolves(null);
277
- mockGetTransaction.resolves(encodeValueGtx(rawGtx));
278
- const result = iccf.createIccfProofTx(clientConfiguredToD1, txToProveRID, txToProveHashMismatch, txToProveSigners, sourceBlockchainRid, targetBlockchainRid, iccfTxSigners, false);
279
- yield expect(result).to.be.rejectedWith(BlockAnchoringException);
280
- }));
281
- it("should throw an error when block is not present in cluster anchoring chain", () => __awaiter(void 0, void 0, void 0, function* () {
282
- const rawGtx = createRawGtx("test", 0);
283
- const proofHash = gtvHash(rawGtx, 2);
284
- const confirmationProofResponse = {
285
- hash: proofHash,
286
- blockHeader: createEncodedBlockHeaderArray(),
287
- };
288
- const gtx = rawGtxToGtx(rawGtx);
289
- const txToProveRID = getDigestToSign(gtx, 2);
290
- const txToProveSigners = [];
291
- mockGetAnchoringTransactionForBlockRid.resolves(undefined);
292
- // Later: input instead of on call
293
- mockGetClusterOfBlockchain.onCall(0).resolves("sample-source-cluster");
294
- mockGetClusterOfBlockchain.onCall(1).resolves("sample-target-cluster");
295
- mockGetConfirmationProof.onCall(0).resolves(confirmationProofResponse);
296
- mockGetConfirmationProof.onCall(1).resolves(responseObjectAnchoringProof);
297
- mockGetTransaction.resolves(encodeValueGtx(rawGtx));
298
- const promise = iccf.createIccfProofTx(clientConfiguredToD1, txToProveRID, txToProveHashMismatch, txToProveSigners, sourceBlockchainRid, targetBlockchainRid, iccfTxSigners, false);
299
- yield expect(promise).to.be.rejectedWith("Block is not present in cluster anchoring chain");
300
- }));
301
- }));
302
- describe("isBlockAnchored", () => __awaiter(void 0, void 0, void 0, function* () {
303
- it("returns true if anchoringTx exists");
304
- it("returns false if no anchoringTx exists");
305
- }));
306
- describe("getBlockAnchoringTransaction", () => __awaiter(void 0, void 0, void 0, function* () {
118
+ });
119
+ describe("getBlockAnchoringTransaction", () => {
307
120
  it("returns anchoringTransaction", () => __awaiter(void 0, void 0, void 0, function* () {
308
- const rawGtx = createRawGtx("test", 0);
309
- const proofHash = gtvHash(rawGtx, 2);
310
- const confirmationProofResponse = {
311
- hash: proofHash,
312
- blockHeader: createEncodedBlockHeaderArray(),
313
- };
314
- mockAwaitGetAnchoringTransactionForBlockRid.resolves(mockAnchoringTransaction);
315
- mockGetConfirmationProof.resolves(confirmationProofResponse);
121
+ jest.spyOn(iccfUtils, "calculateBlockRID").mockReturnValue(mockBuffer);
122
+ jest
123
+ .spyOn(clientConfiguredToD1, "getConfirmationProof")
124
+ .mockResolvedValue(mockConfirmationProof);
125
+ jest
126
+ .spyOn(iccfUtils, "awaitGetAnchoringTransactionForBlockRid")
127
+ .mockResolvedValue(mockAnchoringTransaction);
316
128
  const anchoringTransactionResult = yield iccf.getBlockAnchoringTransaction(clientConfiguredToD1, clientConfiguredToD1, mockThirtyTwoBytesBuffer);
317
- expect(anchoringTransactionResult).to.deep.equal(mockAnchoringTransaction);
129
+ expect(anchoringTransactionResult).toStrictEqual(mockAnchoringTransaction);
318
130
  }));
319
- it("should handle null response with confirmationProof", () => __awaiter(void 0, void 0, void 0, function* () {
320
- const rawGtx = createRawGtx("test", 0);
321
- const proofHash = gtvHash(rawGtx, 2);
322
- const confirmationProofResponse = {
323
- hash: proofHash,
324
- blockHeader: createEncodedBlockHeaderArray(),
325
- };
326
- mockAwaitGetAnchoringTransactionForBlockRid.resolves(null);
327
- mockGetConfirmationProof.resolves(confirmationProofResponse);
328
- const promise = yield iccf.getBlockAnchoringTransaction(clientConfiguredToD1, clientConfiguredToD1, mockThirtyTwoBytesBuffer);
329
- expect(promise).to.deep.equal(null);
330
- }));
331
- it("should throw an error if neither a txRid or TxProof is provided as input", () => __awaiter(void 0, void 0, void 0, function* () {
332
- const promise = iccf.getBlockAnchoringTransaction(clientConfiguredToD1, clientConfiguredToD1);
333
- yield expect(promise).to.be.rejectedWith("Missing a txRid or TxProof");
131
+ it("handles null response with confirmationProof", () => __awaiter(void 0, void 0, void 0, function* () {
132
+ jest.spyOn(iccfUtils, "calculateBlockRID").mockReturnValue(mockBuffer);
133
+ jest
134
+ .spyOn(clientConfiguredToD1, "getConfirmationProof")
135
+ .mockResolvedValue(mockConfirmationProof);
136
+ jest.spyOn(iccfUtils, "awaitGetAnchoringTransactionForBlockRid").mockResolvedValue(null);
137
+ const result = yield iccf.getBlockAnchoringTransaction(clientConfiguredToD1, clientConfiguredToD1, mockThirtyTwoBytesBuffer);
138
+ expect(result).toBeNull();
334
139
  }));
335
- it("should return null if confirmationProof is missing", () => __awaiter(void 0, void 0, void 0, function* () {
336
- mockGetConfirmationProof.resolves(undefined);
337
- const result = iccf.getBlockAnchoringTransaction(clientConfiguredToD1, clientConfiguredToD1, mockThirtyTwoBytesBuffer);
338
- expect(result).to.be.rejectedWith("Confirmation proof not found");
140
+ it("throws an error if neither a txRid or TxProof is provided as input", () => __awaiter(void 0, void 0, void 0, function* () {
141
+ yield expect(iccf.getBlockAnchoringTransaction(clientConfiguredToD1, clientConfiguredToD1)).rejects.toThrow(new Error("Missing a txRid or TxProof"));
339
142
  }));
340
- }));
341
- describe("getAnchoringClient", () => __awaiter(void 0, void 0, void 0, function* () {
342
- it("return a client when inserting a blockchain RID", () => __awaiter(void 0, void 0, void 0, function* () {
343
- mockGetClusterOfBlockchain.resolves("source-cluster");
143
+ });
144
+ describe("getAnchoringClient", () => {
145
+ it("returns a client when inserting a blockchain RID", () => __awaiter(void 0, void 0, void 0, function* () {
146
+ jest.spyOn(iccfUtils, "getClusterOfBlockchain").mockResolvedValue("system");
147
+ jest.spyOn(iccfUtils, "getClusterInfo").mockResolvedValue(validAnchoringChainInfo);
148
+ jest.spyOn(blockchainClient, "createClient").mockResolvedValue(clientConfiguredToD1);
344
149
  const result = yield iccf.getAnchoringClient(clientConfiguredToD1, mockStringDirectoryChainRid);
345
- expect(result).to.have.property("config");
150
+ expect(result).toHaveProperty("config");
346
151
  }));
347
- it("return a client when inserting a cluster name", () => __awaiter(void 0, void 0, void 0, function* () {
152
+ it("returns a client when inserting a cluster name", () => __awaiter(void 0, void 0, void 0, function* () {
153
+ jest.spyOn(iccfUtils, "getClusterOfBlockchain").mockResolvedValue("system");
154
+ jest.spyOn(iccfUtils, "getClusterInfo").mockResolvedValue(validAnchoringChainInfo);
155
+ jest.spyOn(blockchainClient, "createClient").mockResolvedValue(clientConfiguredToD1);
348
156
  const result = yield iccf.getAnchoringClient(clientConfiguredToD1, undefined, "source-cluster");
349
- expect(result).to.have.property("config");
157
+ expect(result).toHaveProperty("config");
350
158
  }));
351
- it("should throw an error if neither blockchainRID or cluster name is provided", () => __awaiter(void 0, void 0, void 0, function* () {
352
- const promise = iccf.getAnchoringClient(clientConfiguredToD1);
353
- yield expect(promise).to.be.rejectedWith("Missing a dapp blockchainRid or cluster name");
159
+ it("throws an error if neither blockchainRID nor cluster name is provided", () => __awaiter(void 0, void 0, void 0, function* () {
160
+ yield expect(iccf.getAnchoringClient(clientConfiguredToD1)).rejects.toThrow(new Error("Missing a dapp blockchainRid or cluster name"));
354
161
  }));
355
- it("should throw an error if no cluster could be found", () => __awaiter(void 0, void 0, void 0, function* () {
356
- mockGetClusterOfBlockchain.resolves(undefined);
357
- const promise = iccf.getAnchoringClient(clientConfiguredToD1, mockStringDirectoryChainRid);
358
- yield expect(promise).to.be.rejectedWith("No cluster could be found");
162
+ it("throws an error if no cluster could be found", () => __awaiter(void 0, void 0, void 0, function* () {
163
+ yield expect(iccf.getAnchoringClient(clientConfiguredToD1, mockStringDirectoryChainRid)).rejects.toBeInstanceOf(Error);
164
+ yield expect(iccf.getAnchoringClient(clientConfiguredToD1, mockStringDirectoryChainRid)).rejects.toThrow("No cluster could be found");
359
165
  }));
360
- it("should throw an error if no cluster info could be found", () => __awaiter(void 0, void 0, void 0, function* () {
361
- mockGetClusterOfBlockchain.resolves("sample-source-cluster");
362
- mockGetClusterInfo.resolves(undefined);
363
- const promise = iccf.getAnchoringClient(clientConfiguredToD1, mockStringDirectoryChainRid);
364
- yield expect(promise).to.be.rejectedWith("Cluster info could not be found");
166
+ it("throws an error if no cluster info could be found", () => __awaiter(void 0, void 0, void 0, function* () {
167
+ yield expect(iccf.getAnchoringClient(clientConfiguredToD1, undefined, "source-cluster")).rejects.toThrow(new Error("Cluster info could not be found"));
365
168
  }));
366
- it("should set input client network settings as anchoring client network settings", () => __awaiter(void 0, void 0, void 0, function* () {
367
- mockGetClusterOfBlockchain.resolves("source-cluster");
169
+ it("sets input client network settings as anchoring client network settings", () => __awaiter(void 0, void 0, void 0, function* () {
170
+ jest.spyOn(iccfUtils, "getClusterOfBlockchain").mockResolvedValue("system");
171
+ jest.spyOn(iccfUtils, "getClusterInfo").mockResolvedValue(validAnchoringChainInfo);
172
+ jest.spyOn(blockchainClient, "createClient").mockResolvedValue(clientConfiguredToD1);
368
173
  const result = yield iccf.getAnchoringClient(clientConfiguredToD1, mockStringDirectoryChainRid);
369
- expect(clientConfiguredToD1.config).to.deep.equal(result.config);
174
+ expect(result.config).toStrictEqual(clientConfiguredToD1.config);
370
175
  }));
371
- }));
372
- }));
176
+ });
177
+ });
373
178
  //# sourceMappingURL=iccfProofMaterialBuilder.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"iccfProofMaterialBuilder.test.js","sourceRoot":"","sources":["../../../../test/unit/ICCF/iccfProofMaterialBuilder.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"iccfProofMaterialBuilder.test.js","sourceRoot":"","sources":["../../../../test/unit/ICCF/iccfProofMaterialBuilder.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { LOCAL_POOL, mockStringBlockchainRid } from "../../common/mocks";
11
+ import { getTestsClient } from "../../common/setups";
12
+ import { server } from "../../../mocks/servers";
13
+ import { http, HttpResponse } from "msw";
14
+ let client;
15
+ describe("getRejectedTransactions", () => {
16
+ beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
17
+ server.listen();
18
+ client = yield getTestsClient();
19
+ }));
20
+ afterEach(() => __awaiter(void 0, void 0, void 0, function* () {
21
+ server.resetHandlers();
22
+ }));
23
+ it("returns rejected transactions for blockchain", () => __awaiter(void 0, void 0, void 0, function* () {
24
+ const mockRejectedResponse = [
25
+ {
26
+ txRID: "txRid1",
27
+ rejectReason: "reason1",
28
+ rejectedTimestamp: 1735732415,
29
+ },
30
+ {
31
+ txRID: "txRid2",
32
+ rejectReason: "reason2",
33
+ rejectedTimestamp: 1738410815,
34
+ },
35
+ {
36
+ txRID: "txRid3",
37
+ rejectReason: "reason3",
38
+ rejectedTimestamp: 1740830015,
39
+ },
40
+ ];
41
+ server.use(http.get(`${LOCAL_POOL}/tx/:blockchainRid/rejected`, () => __awaiter(void 0, void 0, void 0, function* () {
42
+ return HttpResponse.json(mockRejectedResponse);
43
+ })));
44
+ const rejectedTransactions = yield client.getRejectedTransactions(mockStringBlockchainRid);
45
+ expect(rejectedTransactions).toEqual(mockRejectedResponse);
46
+ }));
47
+ });
48
+ //# sourceMappingURL=client.getRejectedTransactions.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.getRejectedTransactions.test.js","sourceRoot":"","sources":["../../../../test/unit/blockchainClient/client.getRejectedTransactions.test.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AAEzC,IAAI,MAAe,CAAC;AACpB,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,SAAS,CAAC,GAAS,EAAE;QACnB,MAAM,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;IAClC,CAAC,CAAA,CAAC,CAAC;IAEH,SAAS,CAAC,GAAS,EAAE;QACnB,MAAM,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAS,EAAE;QAC5D,MAAM,oBAAoB,GAAG;YAC3B;gBACE,KAAK,EAAE,QAAQ;gBACf,YAAY,EAAE,SAAS;gBACvB,iBAAiB,EAAE,UAAU;aAC9B;YACD;gBACE,KAAK,EAAE,QAAQ;gBACf,YAAY,EAAE,SAAS;gBACvB,iBAAiB,EAAE,UAAU;aAC9B;YACD;gBACE,KAAK,EAAE,QAAQ;gBACf,YAAY,EAAE,SAAS;gBACvB,iBAAiB,EAAE,UAAU;aAC9B;SACF,CAAC;QAEF,MAAM,CAAC,GAAG,CACR,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,6BAA6B,EAAE,GAAS,EAAE;YAC9D,OAAO,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjD,CAAC,CAAA,CAAC,CACH,CAAC;QAEF,MAAM,oBAAoB,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,uBAAuB,CAAC,CAAC;QAE3F,MAAM,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC7D,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}