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,9 +7,9 @@ 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 { logger } from "../..";
11
- import handleRequest from "./httpUtil";
12
- import { bftMajority, sleep, racePromisesWithTimeout, groupResponses } from "./restclientutil";
10
+ import { sleep } from "./utils";
11
+ import { handleRequest } from "./httpUtil";
12
+ import * as logger from "../logger";
13
13
  const isSuccessfullRequest = (statusCode) => statusCode >= 200 && statusCode < 300;
14
14
  const hasClientError = (statusCode) => statusCode >= 400 && statusCode < 500;
15
15
  const hasServerError = (statusCode) => statusCode >= 500 && statusCode < 600;
@@ -38,10 +38,13 @@ export function tryNextOnError({ method, path, config, postObject, }) {
38
38
  export const errorMessages = {
39
39
  NO_CONSENSUS: "Nodes were not able to reach a consensus",
40
40
  };
41
+ function calculateBftMajorityThreshold(endpointPoolLength) {
42
+ return endpointPoolLength - (endpointPoolLength - 1) / 3;
43
+ }
41
44
  export function queryMajority({ method, path, config, postObject, }) {
42
45
  return __awaiter(this, void 0, void 0, function* () {
43
46
  // Set up constants
44
- const bftMajorityThreshold = bftMajority(config.endpointPool.length);
47
+ const bftMajorityThreshold = calculateBftMajorityThreshold(config.endpointPool.length);
45
48
  const failureThreshold = config.endpointPool.length - bftMajorityThreshold + 1;
46
49
  const { nodeManager } = config;
47
50
  const timeout = 15000;
@@ -113,36 +116,44 @@ export function queryMajority({ method, path, config, postObject, }) {
113
116
  }
114
117
  export function singleEndpoint({ method, path, config, postObject, }) {
115
118
  return __awaiter(this, void 0, void 0, function* () {
116
- let statusCode, rspBody, error;
117
- const { nodeManager } = config;
118
- const endpoint = nodeManager.getNode();
119
+ let statusCode = null;
120
+ let rspBody = null;
121
+ let error = null;
122
+ let transactionTimestamp = undefined;
123
+ const endpoint = config.nodeManager.getNode();
119
124
  if (!endpoint) {
120
125
  throw new Error("Cannot get endpoint. Node not found!");
121
126
  }
122
127
  for (let attempt = 0; attempt < config.attemptsPerEndpoint; attempt++) {
123
- ({ error, statusCode, rspBody } = yield handleRequest(method, path, endpoint.url, postObject));
128
+ const response = yield handleRequest(method, path, endpoint.url, postObject);
129
+ if (response) {
130
+ ({ error, statusCode, rspBody, transactionTimestamp } = response);
131
+ }
124
132
  const isError = statusCode ? hasServerError(statusCode) || hasClientError(statusCode) : false;
125
133
  if (!isError && !error) {
126
- return { error, statusCode, rspBody };
134
+ return { error, statusCode, rspBody, transactionTimestamp };
127
135
  }
128
- logger.info(`${method} request failed on ${config.endpointPool[0]}. Attempt: ${attempt + 1} / ${config.attemptsPerEndpoint}`);
136
+ logger.info(`${method} request failed on ${endpoint.url}. Attempt: ${attempt + 1} / ${config.attemptsPerEndpoint}`);
129
137
  yield sleep(config.attemptInterval);
130
138
  }
131
- // TS issue. Variable 'error' is used before being assigned.
132
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
133
- // @ts-expect-error
134
- return { error, statusCode, rspBody };
139
+ return { error, statusCode, rspBody, transactionTimestamp };
135
140
  });
136
141
  }
137
142
  export function retryRequest({ method, path, config, postObject, validateStatusCode, }) {
143
+ var _a, _b, _c;
138
144
  return __awaiter(this, void 0, void 0, function* () {
139
- let statusCode;
140
- let rspBody;
141
- let error;
145
+ let statusCode = null;
146
+ let rspBody = null;
147
+ let error = null;
148
+ let transactionTimestamp = undefined;
142
149
  const { nodeManager } = config;
143
150
  for (const endpoint of nodeManager.getAvailableNodes()) {
144
151
  for (let attempt = 0; attempt < config.attemptsPerEndpoint; attempt++) {
145
- ({ error, statusCode, rspBody } = yield handleRequest(method, path, endpoint.url, postObject));
152
+ const response = yield handleRequest(method, path, endpoint.url, postObject);
153
+ error = (_a = response === null || response === void 0 ? void 0 : response.error) !== null && _a !== void 0 ? _a : null;
154
+ statusCode = (_b = response === null || response === void 0 ? void 0 : response.statusCode) !== null && _b !== void 0 ? _b : null;
155
+ rspBody = (_c = response === null || response === void 0 ? void 0 : response.rspBody) !== null && _c !== void 0 ? _c : null;
156
+ transactionTimestamp = response === null || response === void 0 ? void 0 : response.transactionTimestamp;
146
157
  const isStatusCodeValid = statusCode ? validateStatusCode(statusCode) : false;
147
158
  const isServerError = statusCode ? hasServerError(statusCode) : false;
148
159
  if (isStatusCodeValid && !error) {
@@ -150,19 +161,88 @@ export function retryRequest({ method, path, config, postObject, validateStatusC
150
161
  if (nodeManager.stickedNode !== endpoint) {
151
162
  nodeManager.setStickyNode(endpoint);
152
163
  }
153
- return { error, statusCode, rspBody };
164
+ return { error, statusCode, rspBody, transactionTimestamp };
154
165
  }
155
166
  if (isServerError) {
156
- nodeManager.makeNodeUnavailable(endpoint.url);
167
+ // nodeManager.makeNodeUnavailable(endpoint.url);
168
+ logger.info(`server error on ${endpoint.url}`);
157
169
  }
158
170
  logger.info(`${method} request failed on ${endpoint.url}. Attempt: ${attempt + 1} / ${config.attemptsPerEndpoint}`);
159
171
  yield sleep(config.attemptInterval);
160
172
  }
161
173
  }
162
- // TS issue. Variable 'error' is used before being assigned.
163
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
164
- // @ts-expect-error
165
- return { error, statusCode, rspBody };
174
+ return { error, statusCode, rspBody, transactionTimestamp };
166
175
  });
167
176
  }
177
+ export function racePromisesWithTimeout(promises, timeout) {
178
+ return __awaiter(this, void 0, void 0, function* () {
179
+ let remainingPromises = [];
180
+ try {
181
+ const resolvedPromise = yield Promise.race([createTimeoutPromise(timeout), ...promises]);
182
+ const promisesWithState = yield checkStateOfPromises(promises);
183
+ const indexOfpromiseToRemove = promisesWithState.findIndex(p => JSON.stringify(p.value) === JSON.stringify(resolvedPromise));
184
+ // Remove the promise that resolved from the list of promises
185
+ promisesWithState.splice(indexOfpromiseToRemove, 1);
186
+ // Remove the state before returning the promises.
187
+ remainingPromises = promisesWithState.map(p => p.value);
188
+ return remainingPromises;
189
+ }
190
+ catch (error) {
191
+ if (error instanceof Error && error.message === "Timeout exceeded") {
192
+ throw error;
193
+ }
194
+ return remainingPromises;
195
+ }
196
+ });
197
+ }
198
+ export function createTimeoutPromise(timeoutMs) {
199
+ return __awaiter(this, void 0, void 0, function* () {
200
+ return new Promise((_, reject) => {
201
+ setTimeout(() => {
202
+ reject(new Error("Timeout exceeded"));
203
+ }, timeoutMs);
204
+ });
205
+ });
206
+ }
207
+ export const checkStateOfPromises = (promises) => __awaiter(void 0, void 0, void 0, function* () {
208
+ const promiseList = [];
209
+ const pendingState = { status: "pending" };
210
+ for (const p of promises) {
211
+ promiseList.push(yield Promise.race([p, pendingState]).then(value => value === pendingState ? Object.assign(Object.assign({}, pendingState), { value: p }) : { status: "fulfilled", value }, reason => ({ status: "rejected", value: reason })));
212
+ }
213
+ return promiseList;
214
+ });
215
+ const stableStringify = (obj) => {
216
+ if (obj && typeof obj === "object" && !Array.isArray(obj)) {
217
+ return JSON.stringify(obj, Object.keys(obj).sort());
218
+ }
219
+ return JSON.stringify(obj);
220
+ };
221
+ export const groupResponses = (responses) => {
222
+ const responseMap = responses.reduce((acc, response) => {
223
+ const key = stableStringify(response.result);
224
+ acc[key] = acc[key]
225
+ ? { response: acc[key].response, count: acc[key].count + 1 }
226
+ : { response, count: 1 };
227
+ return acc;
228
+ }, {});
229
+ const distinctResponses = Object.values(responseMap).sort((a, b) => b.count - a.count);
230
+ // Returns the count of the most common response
231
+ const maxNumberOfEqualResponses = () => {
232
+ return distinctResponses.length > 0 ? distinctResponses[0].count : 0;
233
+ };
234
+ // Returns the number of distinct responses
235
+ const numberOfDistinctResponses = () => {
236
+ return distinctResponses.length;
237
+ };
238
+ // Returns the most common response
239
+ const majorityResponse = () => {
240
+ return distinctResponses[0].response.result;
241
+ };
242
+ return {
243
+ maxNumberOfEqualResponses,
244
+ numberOfDistinctResponses,
245
+ majorityResponse,
246
+ };
247
+ };
168
248
  //# sourceMappingURL=failoverStrategies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failoverStrategies.js","sourceRoot":"","sources":["../../../src/blockchainClient/failoverStrategies.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /// <reference types="node" />
2
+ import { Method } from "./enums";
3
+ import { PostRequestObjects, ResponseObject } from "./types";
4
+ export declare function handleRequest(method: Method, path: string, endpoint: string, postObject?: PostRequestObjects | Buffer): Promise<ResponseObject>;
@@ -7,11 +7,10 @@ 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 { Buffer } from "buffer";
11
10
  import * as logger from "../logger";
12
11
  import { decodeValue } from "../gtx/serialization";
13
12
  import { Method } from "./enums";
14
- function handleRequest(method, path, endpoint, postObject) {
13
+ export function handleRequest(method, path, endpoint, postObject) {
15
14
  return __awaiter(this, void 0, void 0, function* () {
16
15
  if (method == Method.GET) {
17
16
  return yield get(path, endpoint);
@@ -21,7 +20,6 @@ function handleRequest(method, path, endpoint, postObject) {
21
20
  }
22
21
  });
23
22
  }
24
- export default handleRequest;
25
23
  /**
26
24
  * Sends request to get data from a given API endpoint.
27
25
  * @param path API endpoint of Rell backend
@@ -33,22 +31,23 @@ function get(path, endpoint) {
33
31
  try {
34
32
  const response = yield fetch(new URL(path, endpoint).href);
35
33
  const contentType = response.headers.get("Content-Type");
36
- let rspBody;
34
+ const transactionTimestamp = response.headers.get("X-Transaction-Timestamp");
35
+ let rspBody = null;
36
+ const error = null;
37
37
  if (contentType === null || contentType === void 0 ? void 0 : contentType.includes("application/json")) {
38
38
  rspBody = yield response.json();
39
39
  }
40
40
  else if (contentType === null || contentType === void 0 ? void 0 : contentType.includes("text/plain")) {
41
41
  rspBody = yield response.text();
42
42
  }
43
- return {
44
- error: null,
45
- statusCode: response.status,
46
- rspBody,
47
- };
43
+ else if (contentType === null || contentType === void 0 ? void 0 : contentType.includes("application/octet-stream")) {
44
+ rspBody = yield constructBufferResponseBody(response);
45
+ }
46
+ return createResponseObject(error, response.status, rspBody, transactionTimestamp);
48
47
  }
49
48
  catch (error) {
50
49
  logger.error(error.message);
51
- return { error, statusCode: null, rspBody: null };
50
+ return createResponseObject(error, null, null);
52
51
  }
53
52
  });
54
53
  }
@@ -73,14 +72,11 @@ function post(path, endpoint, requestBody) {
73
72
  },
74
73
  };
75
74
  const response = yield fetch(new URL(path, endpoint).href, requestOptions);
76
- return {
77
- error: null,
78
- statusCode: response.status,
79
- rspBody: yield constructBufferPostResponseBody(response),
80
- };
75
+ const transactionTimestamp = response.headers.get("X-Transaction-Timestamp");
76
+ return createResponseObject(null, response.status, yield constructBufferResponseBody(response), transactionTimestamp);
81
77
  }
82
78
  catch (error) {
83
- return { error, statusCode: null, rspBody: null };
79
+ return createResponseObject(error, null, null);
84
80
  }
85
81
  }
86
82
  else {
@@ -93,19 +89,16 @@ function post(path, endpoint, requestBody) {
93
89
  "Content-Type": "application/json",
94
90
  },
95
91
  });
96
- return {
97
- error: null,
98
- statusCode: response.status,
99
- rspBody: yield constructBufferPostResponseBody(response),
100
- };
92
+ const transactionTimestamp = response.headers.get("X-Transaction-Timestamp");
93
+ return createResponseObject(null, response.status, yield constructBufferResponseBody(response), transactionTimestamp);
101
94
  }
102
95
  catch (error) {
103
- return { error, statusCode: null, rspBody: null };
96
+ return createResponseObject(error, null, null);
104
97
  }
105
98
  }
106
99
  });
107
100
  }
108
- function constructBufferPostResponseBody(response) {
101
+ function constructBufferResponseBody(response) {
109
102
  return __awaiter(this, void 0, void 0, function* () {
110
103
  const contentType = response.headers.get("content-type");
111
104
  if (contentType === "application/octet-stream") {
@@ -120,4 +113,15 @@ function constructBufferPostResponseBody(response) {
120
113
  return responseText ? responseText : response.statusText;
121
114
  });
122
115
  }
116
+ function createResponseObject(error, statusCode, rspBody, transactionTimestamp) {
117
+ const responseObject = {
118
+ error,
119
+ statusCode,
120
+ rspBody,
121
+ };
122
+ if (transactionTimestamp) {
123
+ responseObject.transactionTimestamp = transactionTimestamp;
124
+ }
125
+ return responseObject;
126
+ }
123
127
  //# sourceMappingURL=httpUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpUtil.js","sourceRoot":"","sources":["../../../src/blockchainClient/httpUtil.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,7 @@
1
1
  /// <reference types="node" />
2
- import { AppStructure, BlockInfo, KeyPair, TransactionInfo, TransactionReceipt, StatusObject, BufferId, BlockAnchoringState } from "./types";
2
+ import { AppStructure, BlockInfo, KeyPair, TransactionInfo, TransactionReceipt, TransactionStatusReponse, BufferId, BlockAnchoringState, ClientCallback, ConfirmationProof, ClientConfig, Operation, QueryCallback, QueryObject, SignatureProvider, SignedTransaction, Transaction, RejectedTransaction, WaitingTransaction } from "./types";
3
3
  import { DictPair, RawGtv } from "../gtv/types";
4
4
  import { Web3PromiEvent } from "../promiEvent/promiEvents";
5
- import { RestClientCallback } from "../restclient/types";
6
- import { ClientConfig, Operation, QueryCallback, QueryObject, SignatureProvider, SignedTransaction, Transaction } from "./types";
7
- import { GTX } from "../gtx/types";
8
- import { ConfirmationProof } from "../blockchainClient/types";
9
5
  import { AnchoringStatus, ChainConfirmationLevel } from "./enums";
10
6
  import { AnchoringTransaction } from "../ICCF/types";
11
7
  import { Web3EventMap } from "../promiEvent/promiEventEmitter";
@@ -33,7 +29,7 @@ export interface IClient extends Queryable {
33
29
  * @param callback - A callback function to handle the signing result. Parameters (error, signedTx)
34
30
  * * @returns - A promise that resolves with the signed transaction.
35
31
  */
36
- signTransaction(transaction: Transaction | SignedTransaction, signMethod: KeyPair | SignatureProvider, callback?: RestClientCallback<Buffer>): Promise<SignedTransaction>;
32
+ signTransaction(transaction: Transaction | SignedTransaction, signMethod: KeyPair | SignatureProvider, callback?: ClientCallback<Buffer>): Promise<SignedTransaction>;
37
33
  /**
38
34
  * Sends a transaction to the blockchain.
39
35
  *
@@ -43,7 +39,7 @@ export interface IClient extends Queryable {
43
39
  * @param confirmationLevel - Enables configuration of the confirmation level the requests should sent for the transaction status.
44
40
  * @returns - A Web3PromiEvent that resolves with the transaction receipt.
45
41
  */
46
- sendTransaction(transaction: Transaction | SignedTransaction | Operation, doStatusPolling?: boolean, callback?: RestClientCallback<TransactionReceipt>, confirmationLevel?: ChainConfirmationLevel): Web3PromiEvent<TransactionReceipt, Web3EventMap>;
42
+ sendTransaction(transaction: Transaction | SignedTransaction | Operation, doStatusPolling?: boolean, callback?: ClientCallback<TransactionReceipt>, confirmationLevel?: ChainConfirmationLevel): Web3PromiEvent<TransactionReceipt, Web3EventMap>;
47
43
  /**
48
44
  * Signs and sends a transaction for inclusion in a block. It adds a nop
49
45
  * if missing.
@@ -55,7 +51,7 @@ export interface IClient extends Queryable {
55
51
  * @returns - A Web3PromiEvent that resolves with the transaction receipt.
56
52
  *
57
53
  */
58
- signAndSendUniqueTransaction(transaction: Operation | Transaction, signMethod: KeyPair | SignatureProvider, doStatusPolling?: boolean, callback?: RestClientCallback<TransactionReceipt>, confirmationLevel?: ChainConfirmationLevel): Web3PromiEvent<TransactionReceipt, Web3EventMap>;
54
+ signAndSendUniqueTransaction(transaction: Operation | Transaction, signMethod: KeyPair | SignatureProvider, doStatusPolling?: boolean, callback?: ClientCallback<TransactionReceipt>, confirmationLevel?: ChainConfirmationLevel): Web3PromiEvent<TransactionReceipt, Web3EventMap>;
59
55
  /**
60
56
  * Retrieves a transaction given its transaction RID.
61
57
  *
@@ -67,7 +63,7 @@ export interface IClient extends Queryable {
67
63
  * the callback will be called with (null, null).
68
64
  * @returns- A promise that resolves with the serialized message of the transaction.
69
65
  */
70
- getTransaction(transactionRid: BufferId, callback?: RestClientCallback<Buffer>): Promise<Buffer>;
66
+ getTransaction(transactionRid: BufferId, callback?: ClientCallback<Buffer>): Promise<Buffer>;
71
67
  /**
72
68
  * Retrieves the status of a transaction given its transaction RID.
73
69
  *
@@ -80,20 +76,13 @@ export interface IClient extends Queryable {
80
76
  * @returns - A promise that resolves with the status object of the transaction.
81
77
  *
82
78
  */
83
- getTransactionStatus: (transactionRid: BufferId, callback?: RestClientCallback<TransactionReceipt> | RestClientCallback<StatusObject>) => Promise<StatusObject>;
79
+ getTransactionStatus: (transactionRid: BufferId, callback?: ClientCallback<TransactionReceipt> | ClientCallback<TransactionStatusReponse>) => Promise<TransactionStatusReponse>;
84
80
  /**
85
81
  * Adds an operation containing a nonce which makes the transaction unique.
86
82
  *
87
83
  * @param transaction - The transaction to sign and send.
88
84
  */
89
85
  addNop(transaction: Transaction): Transaction;
90
- /**
91
- * @deprecated Use calculateTransactionRid util function instead.
92
- *
93
- * Calculates and returns the transaction RID, i.e., the merkle root hash of the transaction.
94
- * @param transaction The transaction to sign and send
95
- */
96
- getTransactionRid(transaction: Transaction | SignedTransaction | Operation): Buffer;
97
86
  /**
98
87
  * Fetch info about transactions from a chain.
99
88
  *
@@ -108,7 +97,7 @@ export interface IClient extends Queryable {
108
97
  * @returns - A promise that resolves with an array of transaction information.
109
98
  *
110
99
  */
111
- getTransactionsInfo(limit?: number, beforeTime?: Date, callback?: RestClientCallback<TransactionInfo[]>, afterTime?: Date, signerPubKey?: string): Promise<TransactionInfo[]>;
100
+ getTransactionsInfo(limit?: number, beforeTime?: Date, callback?: ClientCallback<TransactionInfo[]>, afterTime?: Date, signerPubKey?: string): Promise<TransactionInfo[]>;
112
101
  /**
113
102
  * Fetch info about a transaction from a chain.
114
103
  *
@@ -120,7 +109,7 @@ export interface IClient extends Queryable {
120
109
  * @returns - A promise that resolves with the transaction information.
121
110
  *
122
111
  */
123
- getTransactionInfo(transactionRid: BufferId, callback?: RestClientCallback<TransactionInfo>): Promise<TransactionInfo>;
112
+ getTransactionInfo(transactionRid: BufferId, callback?: ClientCallback<TransactionInfo>): Promise<TransactionInfo>;
124
113
  /**
125
114
  * Fetches the last known confirmation status for a transaction RID.
126
115
  *
@@ -131,7 +120,7 @@ export interface IClient extends Queryable {
131
120
  * is an object with the string property 'error'.
132
121
  * @returns - A promise that resolves with the transaction confirmation level and an anchoring transaction if the transaction is anchored
133
122
  */
134
- getTransactionConfirmationLevel(transactionRid: BufferId, callback?: RestClientCallback<StatusObject | TransactionReceipt>): Promise<TransactionReceipt>;
123
+ getTransactionConfirmationLevel(transactionRid: BufferId, callback?: ClientCallback<TransactionStatusReponse | TransactionReceipt>): Promise<TransactionReceipt>;
135
124
  /**
136
125
  * Fetches the last known anchoring status for a block RID.
137
126
  *
@@ -152,7 +141,7 @@ export interface IClient extends Queryable {
152
141
  * @returns - A promise that resolves with the number of successful transactions.
153
142
  *
154
143
  */
155
- getTransactionCount(callback?: RestClientCallback<number>): Promise<number>;
144
+ getTransactionCount(callback?: ClientCallback<number>): Promise<number>;
156
145
  /**
157
146
  * Fetch info about a block for a chain.
158
147
  *
@@ -165,7 +154,7 @@ export interface IClient extends Queryable {
165
154
  * @returns - A promise that resolves with the block info.
166
155
  *
167
156
  */
168
- getBlockInfo(blockIdentifier: number | string, txs?: boolean, callback?: RestClientCallback<BlockInfo>): Promise<BlockInfo>;
157
+ getBlockInfo(blockIdentifier: number | string, txs?: boolean, callback?: ClientCallback<BlockInfo>): Promise<BlockInfo>;
169
158
  /**
170
159
  * Fetch info about the latest block for a chain.
171
160
  *
@@ -177,7 +166,7 @@ export interface IClient extends Queryable {
177
166
  * @returns - A promise that resolves with the block info.
178
167
  *
179
168
  */
180
- getLatestBlock(txs?: boolean, callback?: RestClientCallback<BlockInfo>): Promise<BlockInfo>;
169
+ getLatestBlock(txs?: boolean, callback?: ClientCallback<BlockInfo>): Promise<BlockInfo>;
181
170
  /**
182
171
  * Fetch info about blocks for a chain. If both beforeTime and beforeHeight is provided, only beforeTime will be used.
183
172
  *
@@ -194,7 +183,7 @@ export interface IClient extends Queryable {
194
183
  * @returns - A promise that resolves with an array of block info.
195
184
  *
196
185
  */
197
- getBlocks(props: {
186
+ getBlocks(props?: {
198
187
  limit?: number;
199
188
  beforeTime?: Date;
200
189
  afterTime?: Date;
@@ -202,46 +191,16 @@ export interface IClient extends Queryable {
202
191
  afterHeight?: number;
203
192
  excludeEmpty?: boolean;
204
193
  txs?: boolean;
205
- callback?: RestClientCallback<TransactionInfo[]>;
194
+ callback?: ClientCallback<BlockInfo[]>;
206
195
  }): Promise<BlockInfo[]>;
207
- /**
208
- * Fetch info about blocks for a chain. If both beforeTime and beforeHeight is provided, only beforeTime will be used.
209
- *
210
- * @param limit - Limit number of transactions returned. Minimum value is 0 and maximum 100. Defaults to 25.
211
- * @param beforeTime - Return only transactions before this time.
212
- * @param beforeHeight - Return only transactions before this height.
213
- * @param tsx - Boolean to decide whether or not to include full transaction data. Defaults to false.
214
- * @param callback - A callback function to handle the response body. Taking parameters (error, responseBody). If error is null
215
- * then responseBody is an object of type BlockInfo[].
216
- * If error is not null, then responseBody
217
- * is an object with the string property 'error'.
218
- * @returns - A promise that resolves with an array of block info.
219
- * @deprecated Use getBlocks instead.
220
- *
221
- */
222
- getBlocksInfo(limit?: number, beforeTime?: Date, beforeHeight?: number, txs?: boolean, callback?: RestClientCallback<TransactionInfo[]>): Promise<BlockInfo[]>;
223
- /**
224
- * @deprecated Use encodeTransaction util function instead.
225
- *
226
- * Encodes the transaction using ASN.1.
227
- * @returns the transaction encoded
228
- */
229
- encodeTransaction(transaction: Transaction): Buffer;
230
- /**
231
- * @deprecated Use decodeTransactionToGtx util function instead.
232
- *
233
- * Decodes the transaction using ASN.1.
234
- * @returns the transaction decoded in GTX format
235
- */
236
- decodeTransactionToGtx(transaction: Buffer): GTX;
237
196
  /**
238
197
  * Retrieves the client node URL pool.
239
198
  *
240
199
  * @returns An array of the client node URL pool.
241
200
  */
242
201
  getClientNodeUrlPool(): string[];
243
- getConfirmationProof(txRID: BufferId, callback?: RestClientCallback<ConfirmationProof>): Promise<ConfirmationProof>;
244
- getAppStructure(callback?: RestClientCallback<AppStructure>): Promise<AppStructure>;
202
+ getConfirmationProof(txRID: BufferId, callback?: ClientCallback<ConfirmationProof>): Promise<ConfirmationProof>;
203
+ getAppStructure(callback?: ClientCallback<AppStructure>): Promise<AppStructure>;
245
204
  /**
246
205
  *
247
206
  * @param transactionRid - The transaction RID to retrieve a cluster anchoring transaction or anchoring status
@@ -253,7 +212,7 @@ export interface IClient extends Queryable {
253
212
  * is an object with the string property 'error'.
254
213
  * @returns - A promise that resolves with an anchoring transaction or anchoring status based on the outcome
255
214
  */
256
- getClusterAnchoringTransactionConfirmation(transactionRid: BufferId, anchoringClient: IClient, callback?: RestClientCallback<TransactionReceipt>): Promise<AnchoringTransaction | AnchoringStatus>;
215
+ getClusterAnchoringTransactionConfirmation(transactionRid: BufferId, anchoringClient: IClient, callback?: ClientCallback<TransactionReceipt>): Promise<AnchoringTransaction | AnchoringStatus>;
257
216
  /**
258
217
  *
259
218
  * @param anchoredTxRid - The anchored transaction RID retrieved from the cluster anchoring transaction, used to retrieve a system cluster anchoring transaction
@@ -267,5 +226,35 @@ export interface IClient extends Queryable {
267
226
  * is an object with the string property 'error'.
268
227
  * @returns - A promise that resolves with an anchoring transaction or null
269
228
  */
270
- getSystemAnchoringTransactionConfirmation(anchoredTxRid: BufferId, anchoringClient: IClient, systemAnchoringChainRid: string, callback?: RestClientCallback<TransactionReceipt>): Promise<AnchoringTransaction | null>;
229
+ getSystemAnchoringTransactionConfirmation(anchoredTxRid: BufferId, anchoringClient: IClient, systemAnchoringChainRid: string, callback?: ClientCallback<TransactionReceipt>): Promise<AnchoringTransaction | null>;
230
+ /**
231
+ * Fetches the list of waiting transactions
232
+ * @param blockchainRid - The blockchain RID to fetch the waiting transactions from
233
+ * @param callback - A callback function to handle the response body. Taking parameters (error, responseBody). If error is null
234
+ * then responseBody is of type Array<string>.
235
+ *
236
+ * @returns - A promise that resolves to a list of waiting transaction RIDs of the specified blockchainRid
237
+ */
238
+ getWaitingTransactions(blockchainRid: BufferId, callback?: ClientCallback<Array<string>>): Promise<Array<string>>;
239
+ /**
240
+ * Fetches the waiting transaction from the specified blockchain
241
+ *
242
+ * @param blockchainRid - The blockchain RID to fetch the waiting transaction from
243
+ * @param txRid - The transaction RID to check the status of
244
+ * @param callback - A callback function to handle the response body. Taking parameters (error, responseBody). If error is null
245
+ * then responseBody is of type WaitingTransaction.
246
+ *
247
+ * @returns - A promise that resolves to a WaitingTransaction representing a waiting transaction binary tx data of the specified transactionRid for the blockchain
248
+ */
249
+ getWaitingTransaction(blockchainRid: BufferId, txRid: BufferId, callback?: ClientCallback<WaitingTransaction>): Promise<WaitingTransaction>;
250
+ /**
251
+ * Fetches the list of rejected transaction RIDs and their corresponding rejection reasons
252
+ *
253
+ * @param blockchainRid - The blockchain RID to fetch the rejected transactions from
254
+ * @param callback - A callback function to handle the response body. Taking parameters (error, responseBody). If error is null
255
+ * then responseBody is of type Array<RejectedTransaction>.
256
+ *
257
+ * @returns - A promise that resolves to a list of rejected transactions of the specified blockchainRid
258
+ */
259
+ getRejectedTransactions(blockchainRid: BufferId, callback?: ClientCallback<Array<RejectedTransaction>>): Promise<Array<RejectedTransaction>>;
271
260
  }
@@ -11,8 +11,11 @@ interface NodeManagerProps {
11
11
  export declare const createNodeManager: ({ nodeUrls, useStickyNode, unavailableDuration, }: NodeManagerProps) => {
12
12
  nodes: NetworkNode[];
13
13
  stickedNode: NetworkNode | null;
14
+ useStickyNode: boolean;
15
+ lastUsedNode: NetworkNode | null;
14
16
  getAvailableNodes(): NetworkNode[];
15
17
  setStickyNode(node: NetworkNode): void;
18
+ setUseStickyNode(useSticky: boolean): void;
16
19
  getNode(): NetworkNode | null;
17
20
  makeAllNodesAvailable(): void;
18
21
  makeNodeUnavailable(nodeUrl: string): void;
@@ -15,6 +15,8 @@ export const createNodeManager = ({ nodeUrls, useStickyNode = false, unavailable
15
15
  return {
16
16
  nodes,
17
17
  stickedNode: null,
18
+ useStickyNode: useStickyNode,
19
+ lastUsedNode: null,
18
20
  getAvailableNodes() {
19
21
  const shuffledAvailableNodes = shuffleArray(this.nodes.filter((node) => node.isAvailable));
20
22
  // set sticky node as the first node, and then shuffle the rest
@@ -27,6 +29,9 @@ export const createNodeManager = ({ nodeUrls, useStickyNode = false, unavailable
27
29
  setStickyNode(node) {
28
30
  this.stickedNode = node;
29
31
  },
32
+ setUseStickyNode(useSticky) {
33
+ this.useStickyNode = useSticky;
34
+ },
30
35
  getNode() {
31
36
  const nodes = this.getAvailableNodes();
32
37
  if (nodes.length === 0) {
@@ -34,6 +39,7 @@ export const createNodeManager = ({ nodeUrls, useStickyNode = false, unavailable
34
39
  }
35
40
  const index = Math.floor(Math.random() * nodes.length);
36
41
  const node = nodes[index];
42
+ this.lastUsedNode = node;
37
43
  if (!useStickyNode) {
38
44
  return node;
39
45
  }
@@ -41,6 +47,7 @@ export const createNodeManager = ({ nodeUrls, useStickyNode = false, unavailable
41
47
  this.setStickyNode(node);
42
48
  return node;
43
49
  }
50
+ this.lastUsedNode = this.stickedNode;
44
51
  return this.stickedNode;
45
52
  },
46
53
  makeAllNodesAvailable() {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeManager.js","sourceRoot":"","sources":["../../../src/blockchainClient/nodeManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /// <reference types="node" />
2
+ import { Method } from "./enums";
3
+ import { HandleRequestInputProps, ResponseObject } from "./types";
4
+ export declare function requestWithFailoverStrategy(method: Method, path: string, config: HandleRequestInputProps["config"], postObject?: Buffer, forceSingleEndpoint?: boolean): Promise<ResponseObject>;