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
@@ -0,0 +1,380 @@
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 { UnexpectedStatusError } from "../../src/blockchainClient/errors";
11
+ import { invalidEndpointPool } from "../common/mocks";
12
+ import { ComplexArgumentObject } from "../common/testData";
13
+ import * as httpUtils from "../../src/blockchainClient/httpUtil";
14
+ import { getTestsClient, waitForTimeout } from "../common/setups";
15
+ let client;
16
+ describe("client query function", () => {
17
+ beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
18
+ client = yield getTestsClient({ blockchainIid: 0 });
19
+ }));
20
+ beforeEach(() => __awaiter(void 0, void 0, void 0, function* () {
21
+ jest.clearAllMocks();
22
+ }));
23
+ afterEach(() => __awaiter(void 0, void 0, void 0, function* () {
24
+ jest.restoreAllMocks();
25
+ }));
26
+ it("query positive number", () => __awaiter(void 0, void 0, void 0, function* () {
27
+ const result = yield client.query("test_number", {
28
+ arg1: 1,
29
+ });
30
+ expect(result).toBe(1);
31
+ }));
32
+ it("query negative number", () => __awaiter(void 0, void 0, void 0, function* () {
33
+ const result = yield client.query("test_number", {
34
+ arg1: -1,
35
+ });
36
+ expect(result).toBe(-1);
37
+ }));
38
+ it("query decimal", () => __awaiter(void 0, void 0, void 0, function* () {
39
+ const result = yield client.query("test_decimal", {
40
+ arg1: "1.1",
41
+ });
42
+ expect(result).toBe("1.1");
43
+ }));
44
+ it("query string", () => __awaiter(void 0, void 0, void 0, function* () {
45
+ const result = yield client.query("test_string", {
46
+ arg1: "test",
47
+ });
48
+ expect(result).toBe("test");
49
+ }));
50
+ it("query byteArray", () => __awaiter(void 0, void 0, void 0, function* () {
51
+ const byteArrayInput = Buffer.from("test");
52
+ const result = yield client.query("test_byte_array", {
53
+ arg1: byteArrayInput,
54
+ });
55
+ expect(Buffer.compare(byteArrayInput, result)).toBe(0);
56
+ }));
57
+ it("query json", () => __awaiter(void 0, void 0, void 0, function* () {
58
+ const result = yield client.query("test_json", {
59
+ arg1: JSON.stringify({ name: "Alice" }),
60
+ });
61
+ expect(result).toBe('{"name":"Alice"}');
62
+ }));
63
+ it("query null", () => __awaiter(void 0, void 0, void 0, function* () {
64
+ const result = yield client.query("test_null");
65
+ expect(result).toBeNull();
66
+ }));
67
+ it("query big integer 64 bits", () => __awaiter(void 0, void 0, void 0, function* () {
68
+ const bigIntValue = "18446744073709551616";
69
+ const bigInt = BigInt(bigIntValue);
70
+ const result = yield client.query("test_big_integer", {
71
+ arg1: bigInt,
72
+ });
73
+ expect(result).toBe(bigInt);
74
+ }));
75
+ it("queries big integer with optional value providing 0 as value", () => __awaiter(void 0, void 0, void 0, function* () {
76
+ const bigIntArgInput = BigInt(0);
77
+ const result = yield client.query("test_optional_big_integer", {
78
+ arg1: bigIntArgInput,
79
+ });
80
+ expect(result).not.toBeNull();
81
+ expect(result).toBe(bigIntArgInput);
82
+ }));
83
+ it("queries big integer with optional value providing positive value", () => __awaiter(void 0, void 0, void 0, function* () {
84
+ const bigIntArgInput = BigInt(1);
85
+ const result = yield client.query("test_optional_big_integer", {
86
+ arg1: bigIntArgInput,
87
+ });
88
+ expect(result).toBe(bigIntArgInput);
89
+ }));
90
+ it("queries big integer with optional value providing null value", () => __awaiter(void 0, void 0, void 0, function* () {
91
+ const result = yield client.query("test_optional_big_integer", {
92
+ arg1: null,
93
+ });
94
+ expect(result).toBe(null);
95
+ }));
96
+ it("returns a value", () => __awaiter(void 0, void 0, void 0, function* () {
97
+ const arrayInput = ["test", "test2"];
98
+ const result = yield client.query("test_array", { arg1: arrayInput });
99
+ expect(result).toEqual(arrayInput);
100
+ }));
101
+ it("returns empty array", () => __awaiter(void 0, void 0, void 0, function* () {
102
+ const result = yield client.query("test_array", {
103
+ arg1: [],
104
+ });
105
+ expect(result).toEqual([]);
106
+ }));
107
+ it("query string key map", () => __awaiter(void 0, void 0, void 0, function* () {
108
+ const result = yield client.query("test_string_key_map", {
109
+ arg1: { test: "test2", test3: "test4" },
110
+ });
111
+ expect(result).toEqual({ test: "test2", test3: "test4" });
112
+ }));
113
+ it("query empty string key map", () => __awaiter(void 0, void 0, void 0, function* () {
114
+ const result = yield client.query("test_string_key_map", {
115
+ arg1: {},
116
+ });
117
+ expect(result).toEqual({});
118
+ }));
119
+ it("Fail query non string key map", () => __awaiter(void 0, void 0, void 0, function* () {
120
+ const expectedErrorMessage = "Query 'test_non_string_key_map' failed: Decoding type 'map<integer,text>': expected ARRAY, actual DICT (parameter: arg1)";
121
+ try {
122
+ yield client.query("test_non_string_key_map", {
123
+ arg1: { test: 1, test3: "test4" },
124
+ });
125
+ }
126
+ catch (error) {
127
+ expect(error).toEqual(new UnexpectedStatusError(400, expectedErrorMessage));
128
+ }
129
+ }));
130
+ //For the type when a map has a key of not string type, it needs to be formatted as a matrix. 2xN
131
+ it("query non string key map", () => __awaiter(void 0, void 0, void 0, function* () {
132
+ const result = yield client.query("test_non_string_key_map", {
133
+ arg1: [
134
+ [1, "test4"],
135
+ [2, "test5"],
136
+ ],
137
+ });
138
+ expect(result).toEqual([
139
+ [1, "test4"],
140
+ [2, "test5"],
141
+ ]);
142
+ }));
143
+ it("returns an array of strings", () => __awaiter(void 0, void 0, void 0, function* () {
144
+ const result = yield client.query("test_boolean", { arg1: true });
145
+ expect(result).toBe(1);
146
+ }));
147
+ it("query set", () => __awaiter(void 0, void 0, void 0, function* () {
148
+ const input = new Set(["foo", "bar", "bar"]);
149
+ const result = yield client.query("test_set", {
150
+ arg1: Array.from(input),
151
+ });
152
+ expect(result).toEqual(["foo", "bar"]);
153
+ }));
154
+ it("query empty set", () => __awaiter(void 0, void 0, void 0, function* () {
155
+ const result = yield client.query("test_set", {
156
+ arg1: [],
157
+ });
158
+ expect(result).toEqual([]);
159
+ }));
160
+ it("takes a query object as argument", () => __awaiter(void 0, void 0, void 0, function* () {
161
+ const result = yield client.query({ name: "test_boolean", args: { arg1: true } });
162
+ expect(result).toBe(1);
163
+ }));
164
+ it("works with large complex object as argument", () => __awaiter(void 0, void 0, void 0, function* () {
165
+ const result = yield client.query({
166
+ name: "test_complex_object",
167
+ args: ComplexArgumentObject,
168
+ });
169
+ expect(result).toBe("");
170
+ }));
171
+ it("takes a query object without arguments", () => __awaiter(void 0, void 0, void 0, function* () {
172
+ const result = yield client.query({ name: "test_without_args" });
173
+ expect(result).toBe(1);
174
+ }));
175
+ it("returns a promise", () => __awaiter(void 0, void 0, void 0, function* () {
176
+ const promise = client.query("test_boolean", { arg1: true });
177
+ expect(promise).toBeInstanceOf(Promise);
178
+ }));
179
+ it("takes a callback", () => __awaiter(void 0, void 0, void 0, function* () {
180
+ yield client.query("test_boolean", { arg1: true }, (err, result) => {
181
+ expect(result).toBe(1);
182
+ });
183
+ }));
184
+ it("takes a callback with query object", () => __awaiter(void 0, void 0, void 0, function* () {
185
+ yield client.query({ name: "test_boolean", args: { arg1: true } }, undefined, (err, result) => {
186
+ expect(result).toBe(1);
187
+ });
188
+ }));
189
+ it("takes a typed argument", () => __awaiter(void 0, void 0, void 0, function* () {
190
+ yield client.query("test_boolean", {
191
+ arg1: true,
192
+ });
193
+ yield client.query({
194
+ name: "test_boolean",
195
+ args: { arg1: true },
196
+ });
197
+ yield client.query("test_without_args");
198
+ client.query("test_boolean", { arg1: true }, (err, response) => {
199
+ expect(response).toBe(1);
200
+ });
201
+ }));
202
+ it("takes a nullable argument", () => __awaiter(void 0, void 0, void 0, function* () {
203
+ const nullableStructQueryObject = {
204
+ name: "test_nullable_struct",
205
+ args: { arg1: [null] },
206
+ };
207
+ const result = yield client.query(nullableStructQueryObject);
208
+ expect(result).toStrictEqual({ int: null });
209
+ }));
210
+ it("throws an error when the query does not exist", () => __awaiter(void 0, void 0, void 0, function* () {
211
+ try {
212
+ yield client.query("does_not_exist");
213
+ }
214
+ catch (error) {
215
+ expect(error).toBeInstanceOf(UnexpectedStatusError);
216
+ expect(error.message).toBe("Unexpected status code from server. Code: 400. Message: Unknown query: does_not_exist.");
217
+ }
218
+ }));
219
+ it("works without arguments", () => __awaiter(void 0, void 0, void 0, function* () {
220
+ const result = yield client.query("test_without_args");
221
+ expect(result).toBe(1);
222
+ }));
223
+ it("returns string key map", () => __awaiter(void 0, void 0, void 0, function* () {
224
+ const result = yield client.query("test_map");
225
+ expect(result["sample_key"]).toBe("sample_value");
226
+ }));
227
+ it("returns byte array key map as an array with buffers", () => __awaiter(void 0, void 0, void 0, function* () {
228
+ const result = yield client.query("test_map_with_bytearray_key");
229
+ expect(Array.isArray(result)).toBe(true);
230
+ expect(Buffer.isBuffer(result[0][0])).toBe(true);
231
+ expect(result[0][1]).toBe("sample_value");
232
+ }));
233
+ it("retries default number of times", () => __awaiter(void 0, void 0, void 0, function* () {
234
+ const handleRequestSpy = jest.spyOn(httpUtils, "handleRequest");
235
+ const clientWithInvalidNodeUrlPoolAndConfiguredFailOver = yield getTestsClient({
236
+ nodeUrlPool: invalidEndpointPool,
237
+ failOverConfig: {
238
+ attemptInterval: 1,
239
+ },
240
+ });
241
+ try {
242
+ yield clientWithInvalidNodeUrlPoolAndConfiguredFailOver.query("test_without_arguments");
243
+ expect(handleRequestSpy).toHaveBeenCalledTimes(9);
244
+ }
245
+ catch (error) {
246
+ expect(error).not.toBeNull();
247
+ }
248
+ }));
249
+ it("retries configured number of times", () => __awaiter(void 0, void 0, void 0, function* () {
250
+ const handleRequestSpy = jest.spyOn(httpUtils, "handleRequest");
251
+ const clientWithInvalidNodeUrlPoolAndConfiguredFailOver = yield getTestsClient({
252
+ nodeUrlPool: invalidEndpointPool,
253
+ failOverConfig: {
254
+ attemptsPerEndpoint: 1,
255
+ attemptInterval: 1,
256
+ },
257
+ });
258
+ try {
259
+ yield clientWithInvalidNodeUrlPoolAndConfiguredFailOver.query("test_without_arguments");
260
+ expect(handleRequestSpy).toHaveBeenCalledTimes(3);
261
+ }
262
+ catch (error) {
263
+ expect(error).not.toBeNull();
264
+ }
265
+ }));
266
+ it("uses default attemptInterval of 500", () => __awaiter(void 0, void 0, void 0, function* () {
267
+ const handleRequestSpy = jest.spyOn(httpUtils, "handleRequest");
268
+ const clientWithInvalidNodeUrlPoolAndConfiguredFailOver = yield getTestsClient({
269
+ nodeUrlPool: invalidEndpointPool,
270
+ failOverConfig: {
271
+ attemptsPerEndpoint: 1,
272
+ },
273
+ });
274
+ try {
275
+ yield clientWithInvalidNodeUrlPoolAndConfiguredFailOver.query("test_without_arguments");
276
+ expect(handleRequestSpy).toHaveBeenCalledTimes(1);
277
+ yield waitForTimeout(250);
278
+ expect(handleRequestSpy).toHaveBeenCalledTimes(1);
279
+ yield waitForTimeout(500);
280
+ expect(handleRequestSpy).toHaveBeenCalledTimes(2);
281
+ yield waitForTimeout(500);
282
+ expect(handleRequestSpy).toHaveBeenCalledTimes(3);
283
+ }
284
+ catch (error) {
285
+ expect(error).not.toBeNull();
286
+ }
287
+ }));
288
+ it("uses configured attemptInterval", () => __awaiter(void 0, void 0, void 0, function* () {
289
+ const clientWithInvalidNodeUrlPoolAndConfiguredFailOver = yield getTestsClient({
290
+ nodeUrlPool: invalidEndpointPool,
291
+ failOverConfig: {
292
+ attemptsPerEndpoint: 1,
293
+ attemptInterval: 100,
294
+ },
295
+ });
296
+ const handleRequestSpy = jest.spyOn(clientWithInvalidNodeUrlPoolAndConfiguredFailOver, "query");
297
+ try {
298
+ yield clientWithInvalidNodeUrlPoolAndConfiguredFailOver.query("test_without_arguments");
299
+ expect(handleRequestSpy).toHaveBeenCalledTimes(1);
300
+ yield waitForTimeout(50);
301
+ expect(handleRequestSpy).toHaveBeenCalledTimes(1);
302
+ yield waitForTimeout(100);
303
+ expect(handleRequestSpy).toHaveBeenCalledTimes(2);
304
+ yield waitForTimeout(100);
305
+ expect(handleRequestSpy).toHaveBeenCalledTimes(3);
306
+ }
307
+ catch (error) {
308
+ expect(error).not.toBeNull();
309
+ }
310
+ }));
311
+ it("inits client with Blockchain IID and sends query", () => __awaiter(void 0, void 0, void 0, function* () {
312
+ const result = yield client.query("test_boolean", { arg1: true });
313
+ expect(result).toBe(1);
314
+ }));
315
+ describe("tuple", () => {
316
+ it("query unnamed tuple", () => __awaiter(void 0, void 0, void 0, function* () {
317
+ const result = yield client.query("test_unnamed_tuple", {
318
+ arg1: [1, 2],
319
+ });
320
+ expect(result).toEqual([1, 2]);
321
+ }));
322
+ it("query incomplete unnamed tuple", () => __awaiter(void 0, void 0, void 0, function* () {
323
+ const promise = client.query("test_unnamed_tuple", {
324
+ arg1: [],
325
+ });
326
+ yield expect(promise).rejects.toThrow(new UnexpectedStatusError(400, "Query 'test_unnamed_tuple' failed: Wrong Gtv array size: 0 instead of 2 (parameter: arg1)"));
327
+ }));
328
+ it("query named tuple", () => __awaiter(void 0, void 0, void 0, function* () {
329
+ const result = yield client.query("test_named_tuple", {
330
+ arg1: { x: 1, y: 2 },
331
+ });
332
+ expect(result).toEqual({ x: 1, y: 2 });
333
+ }));
334
+ it("query incomplete named tuple", () => __awaiter(void 0, void 0, void 0, function* () {
335
+ const promise = client.query("test_named_tuple", {
336
+ arg1: { x: 1 },
337
+ });
338
+ yield expect(promise).rejects.toThrow(new UnexpectedStatusError(400, "Query 'test_named_tuple' failed: Wrong Gtv dictionary size: 1 instead of 2 (parameter: arg1)"));
339
+ }));
340
+ it("query single tuple", () => __awaiter(void 0, void 0, void 0, function* () {
341
+ const result = yield client.query("test_single_tuple", {
342
+ arg1: { x: 1 },
343
+ });
344
+ expect(result).toEqual({ x: 1 });
345
+ }));
346
+ });
347
+ describe("enum", () => {
348
+ it("query enum", () => __awaiter(void 0, void 0, void 0, function* () {
349
+ const result = yield client.query("test_enum", {
350
+ x: "B",
351
+ });
352
+ expect(result).toEqual(1);
353
+ }));
354
+ it("query enum out of range", () => __awaiter(void 0, void 0, void 0, function* () {
355
+ try {
356
+ yield client.query("test_enum", { x: 3 });
357
+ }
358
+ catch (error) {
359
+ expect(error).toBeInstanceOf(UnexpectedStatusError);
360
+ expect(error.message).toBe("Unexpected status code from server. Code: 400. Message: Query 'test_enum' failed: Decoding type 'main:sample_enum': invalid value: 3 (parameter: x).");
361
+ }
362
+ }));
363
+ });
364
+ describe("struct", () => {
365
+ const input = { int: 13 };
366
+ it("query struct", () => __awaiter(void 0, void 0, void 0, function* () {
367
+ const result = yield client.query("test_struct", {
368
+ x: input,
369
+ });
370
+ expect(result).toEqual(input);
371
+ }));
372
+ it("query struct", () => __awaiter(void 0, void 0, void 0, function* () {
373
+ const result = yield client.query("test_struct", {
374
+ x: [input.int],
375
+ });
376
+ expect(result).toEqual(input);
377
+ }));
378
+ });
379
+ });
380
+ //# sourceMappingURL=clientQuery.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientQuery.test.js","sourceRoot":"","sources":["../../../test/integration/clientQuery.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
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 { CONFIGURED_POLL_COUNT, invalidEndpointPool, mockOperation } from "../common/mocks";
11
+ import { setStatusPolling } from "../../src/blockchainClient/utils";
12
+ import { getTestsClient, waitForTimeout } from "../common/setups";
13
+ let client;
14
+ describe("sendTransaction", () => {
15
+ beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
16
+ client = yield getTestsClient({ blockchainIid: 0 });
17
+ }));
18
+ beforeEach(() => __awaiter(void 0, void 0, void 0, function* () {
19
+ jest.clearAllMocks();
20
+ }));
21
+ afterEach(() => __awaiter(void 0, void 0, void 0, function* () {
22
+ jest.restoreAllMocks();
23
+ }));
24
+ it("rejects promise on error", () => __awaiter(void 0, void 0, void 0, function* () {
25
+ yield expect(client.sendTransaction({ name: "doesNotExist" })).rejects.toThrow();
26
+ }));
27
+ it("uses default attemptInterval of 500", () => __awaiter(void 0, void 0, void 0, function* () {
28
+ const clientWithInvalidEndpointPoolAndConfiguredFailOver = yield getTestsClient({
29
+ nodeUrlPool: invalidEndpointPool,
30
+ failOverConfig: { attemptsPerEndpoint: 1 },
31
+ });
32
+ const handleRequestSpy = jest.spyOn(clientWithInvalidEndpointPoolAndConfiguredFailOver, "sendTransaction");
33
+ try {
34
+ yield clientWithInvalidEndpointPoolAndConfiguredFailOver.sendTransaction(mockOperation);
35
+ expect(handleRequestSpy).toHaveBeenCalledTimes(1);
36
+ yield waitForTimeout(250);
37
+ expect(handleRequestSpy).toHaveBeenCalledTimes(1);
38
+ yield waitForTimeout(500);
39
+ expect(handleRequestSpy).toHaveBeenCalledTimes(2);
40
+ yield waitForTimeout(500);
41
+ expect(handleRequestSpy).toHaveBeenCalledTimes(3);
42
+ yield waitForTimeout(500);
43
+ expect(handleRequestSpy).toHaveBeenCalledTimes(3);
44
+ }
45
+ catch (error) {
46
+ expect(error).not.toBeNull();
47
+ }
48
+ }));
49
+ it("uses default pollingInterval of 500", () => __awaiter(void 0, void 0, void 0, function* () {
50
+ const handleRequestSpy = jest.spyOn(client, "getTransactionStatus");
51
+ try {
52
+ yield client.sendTransaction(mockOperation);
53
+ expect(handleRequestSpy).toHaveBeenCalledTimes(1);
54
+ yield waitForTimeout(250);
55
+ expect(handleRequestSpy).toHaveBeenCalledTimes(2);
56
+ yield waitForTimeout(500);
57
+ expect(handleRequestSpy).toHaveBeenCalledTimes(3);
58
+ yield waitForTimeout(500);
59
+ expect(handleRequestSpy).toHaveBeenCalledTimes(4);
60
+ }
61
+ catch (error) {
62
+ expect(error).not.toBeNull();
63
+ }
64
+ }));
65
+ it("uses configured pollingInterval of 100", () => __awaiter(void 0, void 0, void 0, function* () {
66
+ const _client = yield getTestsClient({
67
+ blockchainIid: 0,
68
+ dappStatusPolling: setStatusPolling({ interval: 100, count: CONFIGURED_POLL_COUNT }),
69
+ });
70
+ const handleRequestSpy = jest.spyOn(_client, "getTransactionStatus");
71
+ try {
72
+ yield _client.sendTransaction(mockOperation);
73
+ expect(handleRequestSpy).toHaveBeenCalledTimes(1);
74
+ yield waitForTimeout(100);
75
+ expect(handleRequestSpy).toHaveBeenCalledTimes(2);
76
+ yield waitForTimeout(100);
77
+ expect(handleRequestSpy).toHaveBeenCalledTimes(3);
78
+ yield waitForTimeout(100);
79
+ expect(handleRequestSpy).toHaveBeenCalledTimes(4);
80
+ }
81
+ catch (error) {
82
+ expect(error).not.toBeNull();
83
+ }
84
+ }));
85
+ });
86
+ //# sourceMappingURL=clientSendTransaction.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientSendTransaction.test.js","sourceRoot":"","sources":["../../../test/integration/clientSendTransaction.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
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 { invalidEndpointPool, mockSignatureProvider, mockSignerKeyPair, mockSignerPubKeyB, mockOperation, } from "../common/mocks";
11
+ import { getTestsClient, waitForTimeout } from "../common/setups";
12
+ import { TransactionEvent } from "../../src/blockchainClient/enums";
13
+ import { UnexpectedStatusError } from "../../src/blockchainClient/errors";
14
+ let client;
15
+ describe("signAndSendUniqueTransaction", () => {
16
+ beforeAll(() => __awaiter(void 0, void 0, void 0, function* () {
17
+ client = yield getTestsClient({ blockchainIid: 0 });
18
+ }));
19
+ beforeEach(() => __awaiter(void 0, void 0, void 0, function* () {
20
+ jest.clearAllMocks();
21
+ }));
22
+ afterEach(() => __awaiter(void 0, void 0, void 0, function* () {
23
+ jest.restoreAllMocks();
24
+ }));
25
+ it("rejects sendTransaction after signTransaction was resolved", () => __awaiter(void 0, void 0, void 0, function* () {
26
+ const promiEvent = client.signAndSendUniqueTransaction({
27
+ name: "unknown operation",
28
+ args: [],
29
+ }, mockSignatureProvider);
30
+ let signedEventReceived = false;
31
+ promiEvent.on(TransactionEvent.Signed, () => {
32
+ signedEventReceived = true;
33
+ });
34
+ yield expect(promiEvent).rejects.toThrow(new UnexpectedStatusError(400, `Unknown operation: unknown operation`));
35
+ expect(signedEventReceived).toBe(true);
36
+ }));
37
+ it("rejects promise if transaction has empty list of signers", () => __awaiter(void 0, void 0, void 0, function* () {
38
+ yield expect(client.signAndSendUniqueTransaction({
39
+ operations: [mockOperation],
40
+ signers: [],
41
+ }, mockSignatureProvider)).rejects.toThrow("No such signer, remember to add signer to transaction before adding a signature");
42
+ }));
43
+ it("rejects promise if transaction has signers that do not match signMethod", () => __awaiter(void 0, void 0, void 0, function* () {
44
+ yield expect(client.signAndSendUniqueTransaction({
45
+ operations: [mockOperation],
46
+ signers: [mockSignerPubKeyB],
47
+ }, mockSignatureProvider)).rejects.toThrow("No such signer, remember to add signer to transaction before adding a signature");
48
+ }));
49
+ it("uses default attemptInterval of 500", () => __awaiter(void 0, void 0, void 0, function* () {
50
+ const clientWithInvalidEndpointPool = yield getTestsClient({
51
+ nodeUrlPool: invalidEndpointPool,
52
+ failOverConfig: {
53
+ attemptsPerEndpoint: 1,
54
+ },
55
+ });
56
+ const handleRequestSpy = jest.spyOn(clientWithInvalidEndpointPool, "signAndSendUniqueTransaction");
57
+ try {
58
+ yield clientWithInvalidEndpointPool.signAndSendUniqueTransaction(mockOperation, mockSignerKeyPair);
59
+ yield waitForTimeout(10);
60
+ expect(handleRequestSpy).toHaveBeenCalledTimes(1);
61
+ yield waitForTimeout(440);
62
+ expect(handleRequestSpy).toHaveBeenCalledTimes(1);
63
+ yield waitForTimeout(500);
64
+ expect(handleRequestSpy).toHaveBeenCalledTimes(2);
65
+ yield waitForTimeout(500);
66
+ expect(handleRequestSpy).toHaveBeenCalledTimes(3);
67
+ yield waitForTimeout(500);
68
+ expect(handleRequestSpy).toHaveBeenCalledTimes(3);
69
+ }
70
+ catch (error) {
71
+ expect(error).not.toBeNull();
72
+ }
73
+ }));
74
+ });
75
+ //# sourceMappingURL=clientSignAndSendUniqueTransaction.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientSignAndSendUniqueTransaction.test.js","sourceRoot":"","sources":["../../../test/integration/clientSignAndSendUniqueTransaction.test.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,IAAI,MAAe,CAAC;AACpB,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,SAAS,CAAC,GAAS,EAAE;QACnB,MAAM,GAAG,MAAM,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC,CAAA,CAAC,CAAC;IAEH,UAAU,CAAC,GAAS,EAAE;QACpB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAA,CAAC,CAAC;IAEH,SAAS,CAAC,GAAS,EAAE;QACnB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAS,EAAE;QAC1E,MAAM,UAAU,GAAG,MAAM,CAAC,4BAA4B,CACpD;YACE,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,EAAE;SACT,EACD,qBAAqB,CACtB,CAAC;QACF,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAEhC,UAAU,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;YAC1C,mBAAmB,GAAG,IAAI,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,OAAO,CACtC,IAAI,qBAAqB,CAAC,GAAG,EAAE,sCAAsC,CAAC,CACvE,CAAC;QACF,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAS,EAAE;QACxE,MAAM,MAAM,CACV,MAAM,CAAC,4BAA4B,CACjC;YACE,UAAU,EAAE,CAAC,aAAa,CAAC;YAC3B,OAAO,EAAE,EAAE;SACZ,EACD,qBAAqB,CACtB,CACF,CAAC,OAAO,CAAC,OAAO,CACf,iFAAiF,CAClF,CAAC;IACJ,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,GAAS,EAAE;QACvF,MAAM,MAAM,CACV,MAAM,CAAC,4BAA4B,CACjC;YACE,UAAU,EAAE,CAAC,aAAa,CAAC;YAC3B,OAAO,EAAE,CAAC,iBAAiB,CAAC;SAC7B,EACD,qBAAqB,CACtB,CACF,CAAC,OAAO,CAAC,OAAO,CACf,iFAAiF,CAClF,CAAC;IACJ,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAS,EAAE;QACnD,MAAM,6BAA6B,GAAG,MAAM,cAAc,CAAC;YACzD,WAAW,EAAE,mBAAmB;YAChC,cAAc,EAAE;gBACd,mBAAmB,EAAE,CAAC;aACvB;SACF,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CACjC,6BAA6B,EAC7B,8BAA8B,CAC/B,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,6BAA6B,CAAC,4BAA4B,CAC9D,aAAa,EACb,iBAAiB,CAClB,CAAC;YAEF,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;YACzB,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAElD,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAElD,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAElD,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAElD,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}