@super-protocol/sdk-js 2.1.4-beta.8 → 2.1.4-beta.9

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 (500) hide show
  1. package/{dist/cjs → build}/TIIGenerator.d.ts +4 -2
  2. package/build/TIIGenerator.js +261 -0
  3. package/{dist/mjs → build}/analytics/Analytics.d.ts +1 -1
  4. package/build/analytics/Analytics.js +74 -0
  5. package/{dist/cjs → build}/analytics/AnalyticsError.js +1 -1
  6. package/{dist/cjs → build}/analytics/eventProviders/BrowserEventProvider.d.ts +1 -1
  7. package/{dist/cjs → build}/analytics/eventProviders/BrowserEventProvider.js +3 -3
  8. package/build/analytics/eventProviders/EventProvider.js +14 -0
  9. package/{dist/cjs → build}/analytics/eventProviders/NodeEventProvider.d.ts +1 -1
  10. package/build/analytics/eventProviders/NodeEventProvider.js +48 -0
  11. package/{dist/mjs → build}/analytics/transports/AxiosTransport.d.ts +1 -1
  12. package/{dist/cjs → build}/analytics/transports/AxiosTransport.js +4 -4
  13. package/{dist/cjs → build}/analytics/transports/FetchTransport.d.ts +1 -1
  14. package/build/analytics/transports/FetchTransport.js +42 -0
  15. package/{dist/mjs → build}/analytics/types.d.ts +1 -1
  16. package/{dist/cjs → build}/analytics/types.js +1 -1
  17. package/{dist/cjs → build}/config.js +1 -1
  18. package/{dist/cjs → build}/connectors/BaseConnector.d.ts +1 -1
  19. package/{dist/cjs → build}/connectors/BaseConnector.js +3 -3
  20. package/{dist/mjs → build}/connectors/BlockchainConnector.d.ts +3 -3
  21. package/build/connectors/BlockchainConnector.js +358 -0
  22. package/{dist/mjs → build}/connectors/BlockchainEventsListener.d.ts +1 -1
  23. package/{dist/cjs → build}/connectors/BlockchainEventsListener.js +15 -15
  24. package/{dist/cjs → build}/connectors/index.d.ts +2 -2
  25. package/{dist/cjs → build}/connectors/index.js +5 -5
  26. package/{dist/cjs → build}/constants.js +1 -1
  27. package/{dist/cjs → build}/contracts/abi.d.ts +11 -11
  28. package/{dist/cjs → build}/contracts/abi.js +12 -12
  29. package/build/crypto/Crypto.js +119 -0
  30. package/build/crypto/index.d.ts +2 -0
  31. package/{dist/cjs → build}/crypto/index.js +3 -3
  32. package/{dist/cjs → build}/crypto/nodejs/AES.js +6 -6
  33. package/{dist/cjs → build}/crypto/nodejs/ARIA.js +6 -6
  34. package/{dist/cjs → build}/crypto/nodejs/ECIES.js +1 -1
  35. package/{dist/mjs → build}/crypto/nodejs/NativeCrypto.d.ts +3 -3
  36. package/build/crypto/nodejs/NativeCrypto.js +183 -0
  37. package/build/crypto/nodejs/RSA-Hybrid.js +95 -0
  38. package/build/index.d.ts +79 -0
  39. package/build/index.js +142 -0
  40. package/{dist/cjs → build}/logger.js +1 -1
  41. package/{dist/cjs → build}/models/EtlModel.d.ts +1 -1
  42. package/{dist/cjs → build}/models/EtlModel.js +8 -8
  43. package/{dist/mjs → build}/models/Offer.d.ts +1 -1
  44. package/build/models/Offer.js +407 -0
  45. package/{dist/mjs → build}/models/Order.d.ts +1 -1
  46. package/build/models/Order.js +577 -0
  47. package/{dist/mjs → build}/models/Provider.d.ts +1 -1
  48. package/build/models/Provider.js +137 -0
  49. package/{dist/cjs → build}/models/TCB.d.ts +1 -1
  50. package/build/models/TCB.js +135 -0
  51. package/{dist/mjs → build}/models/TeeOffer.d.ts +2 -2
  52. package/build/models/TeeOffer.js +600 -0
  53. package/build/models/index.d.ts +5 -0
  54. package/build/models/index.js +17 -0
  55. package/build/polyfills.js +7 -0
  56. package/{dist/cjs → build}/proto/Compression.d.ts +1 -1
  57. package/build/proto/Compression.js +132 -0
  58. package/{dist/mjs → build}/proto/TRI.d.ts +1 -1
  59. package/build/proto/TRI.js +293 -0
  60. package/{dist/mjs → build}/proto/TeeProperties.d.ts +1 -1
  61. package/build/proto/TeeProperties.js +401 -0
  62. package/{dist/cjs → build}/providers/storage/ChunksDownloadDecorator.d.ts +2 -2
  63. package/{dist/cjs → build}/providers/storage/ChunksDownloadDecorator.js +1 -1
  64. package/{dist/cjs → build}/providers/storage/IStorageProvider.d.ts +1 -1
  65. package/{dist/cjs → build}/providers/storage/IStorageProvider.js +1 -1
  66. package/{dist/mjs → build}/providers/storage/S3StorageProvider.d.ts +2 -2
  67. package/{dist/cjs → build}/providers/storage/S3StorageProvider.js +3 -3
  68. package/{dist/cjs → build}/providers/storage/StorageAdapter.d.ts +2 -2
  69. package/build/providers/storage/StorageAdapter.js +323 -0
  70. package/{dist/mjs → build}/providers/storage/StorageContentWriter.d.ts +2 -2
  71. package/{dist/cjs → build}/providers/storage/StorageContentWriter.js +3 -3
  72. package/{dist/cjs → build}/providers/storage/StorageKeyValueAdapter.d.ts +2 -2
  73. package/{dist/cjs → build}/providers/storage/StorageKeyValueAdapter.js +8 -8
  74. package/{dist/cjs → build}/providers/storage/StorageMetadataReader.d.ts +3 -3
  75. package/{dist/cjs → build}/providers/storage/StorageMetadataReader.js +3 -3
  76. package/{dist/mjs → build}/providers/storage/StorjAdapter.d.ts +2 -2
  77. package/{dist/cjs → build}/providers/storage/StorjAdapter.js +5 -5
  78. package/{dist/mjs → build}/providers/storage/StorjStorageProvider.d.ts +2 -2
  79. package/{dist/cjs → build}/providers/storage/StorjStorageProvider.js +6 -6
  80. package/build/providers/storage/getStorageProvider.d.ts +4 -0
  81. package/build/providers/storage/getStorageProvider.js +20 -0
  82. package/{dist/cjs → build}/providers/storage/types.js +1 -1
  83. package/{dist/mjs → build}/staticModels/ActiveOffers.d.ts +1 -1
  84. package/{dist/cjs → build}/staticModels/ActiveOffers.js +7 -7
  85. package/{dist/mjs → build}/staticModels/ActiveOrders.d.ts +1 -1
  86. package/{dist/cjs → build}/staticModels/ActiveOrders.js +12 -12
  87. package/{dist/cjs → build}/staticModels/Consensus.d.ts +1 -1
  88. package/build/staticModels/Consensus.js +247 -0
  89. package/{dist/mjs → build}/staticModels/Deposits.d.ts +1 -1
  90. package/build/staticModels/Deposits.js +214 -0
  91. package/{dist/cjs → build}/staticModels/Marks.d.ts +1 -1
  92. package/build/staticModels/Marks.js +43 -0
  93. package/{dist/cjs → build}/staticModels/ModelPackager.js +6 -6
  94. package/{dist/mjs → build}/staticModels/Offers.d.ts +2 -2
  95. package/build/staticModels/Offers.js +207 -0
  96. package/{dist/mjs → build}/staticModels/Orders.d.ts +2 -2
  97. package/build/staticModels/Orders.js +502 -0
  98. package/{dist/mjs → build}/staticModels/ProviderRegistry.d.ts +1 -1
  99. package/{dist/cjs → build}/staticModels/ProviderRegistry.js +28 -28
  100. package/{dist/cjs → build}/staticModels/StaticModel.d.ts +2 -2
  101. package/build/staticModels/StaticModel.js +46 -0
  102. package/{dist/cjs → build}/staticModels/Superpro.d.ts +2 -2
  103. package/build/staticModels/Superpro.js +24 -0
  104. package/{dist/cjs → build}/staticModels/SuperproToken.d.ts +1 -1
  105. package/build/staticModels/SuperproToken.js +154 -0
  106. package/{dist/cjs → build}/staticModels/TeeOffers.d.ts +1 -1
  107. package/build/staticModels/TeeOffers.js +344 -0
  108. package/build/store.js +17 -0
  109. package/{dist/cjs → build}/tee/QuoteParser.d.ts +1 -1
  110. package/build/tee/QuoteParser.js +189 -0
  111. package/{dist/cjs → build}/tee/QuoteValidator.d.ts +1 -1
  112. package/build/tee/QuoteValidator.js +414 -0
  113. package/{dist/cjs → build}/tee/errors.js +1 -1
  114. package/build/tee/helpers.js +119 -0
  115. package/{dist/cjs → build}/tee/interface.d.ts +1 -1
  116. package/{dist/cjs → build}/tee/interface.js +1 -1
  117. package/{dist/cjs → build}/tee/statuses.js +1 -1
  118. package/{dist/cjs → build}/tee/types.js +1 -1
  119. package/{dist/cjs → build}/types/Compressor.js +1 -1
  120. package/{dist/cjs → build}/types/Consensus.d.ts +1 -1
  121. package/{dist/cjs → build}/types/Consensus.js +1 -1
  122. package/{dist/mjs → build}/types/DepositInfo.d.ts +1 -1
  123. package/{dist/cjs → build}/types/DepositInfo.js +1 -1
  124. package/{dist/cjs → build}/types/EtlModel.js +1 -1
  125. package/{dist/mjs → build}/types/Events.d.ts +2 -2
  126. package/{dist/cjs → build}/types/Events.js +1 -1
  127. package/build/types/HardwareInfo.d.ts +6 -0
  128. package/{dist/cjs → build}/types/HardwareInfo.js +1 -1
  129. package/{dist/cjs → build}/types/Marks.js +1 -1
  130. package/{dist/mjs → build}/types/Offer.d.ts +1 -1
  131. package/{dist/cjs → build}/types/Offer.js +1 -1
  132. package/{dist/cjs → build}/types/OptionInfo.js +1 -1
  133. package/{dist/mjs → build}/types/Order.d.ts +6 -4
  134. package/build/types/Order.js +60 -0
  135. package/{dist/mjs → build}/types/OrderUsage.d.ts +4 -4
  136. package/{dist/cjs → build}/types/OrderUsage.js +1 -1
  137. package/{dist/cjs → build}/types/Origins.js +1 -1
  138. package/{dist/cjs → build}/types/Provider.js +1 -1
  139. package/{dist/mjs → build}/types/ResourceLoader.d.ts +1 -1
  140. package/{dist/cjs → build}/types/ResourceLoader.js +1 -1
  141. package/{dist/cjs → build}/types/SlotInfo.js +1 -1
  142. package/{dist/cjs → build}/types/SlotUsage.d.ts +1 -1
  143. package/{dist/cjs → build}/types/SlotUsage.js +1 -1
  144. package/{dist/cjs → build}/types/Superpro.js +1 -1
  145. package/{dist/cjs → build}/types/TeeOfferInfo.d.ts +1 -1
  146. package/{dist/cjs → build}/types/TeeOfferInfo.js +1 -1
  147. package/{dist/cjs → build}/types/TeeOfferOption.d.ts +3 -3
  148. package/{dist/cjs → build}/types/TeeOfferOption.js +1 -1
  149. package/build/types/TeeOfferSlot.d.ts +8 -0
  150. package/{dist/cjs → build}/types/TeeOfferSlot.js +1 -1
  151. package/{dist/cjs → build}/types/ValueOfferSlot.d.ts +4 -4
  152. package/{dist/cjs → build}/types/ValueOfferSlot.js +1 -1
  153. package/{dist/cjs → build}/types/Web3.js +1 -1
  154. package/{dist/cjs → build}/types/blockchainConnector/StorageAccess.d.ts +1 -1
  155. package/{dist/cjs → build}/types/blockchainConnector/StorageAccess.js +1 -1
  156. package/build/types/index.d.ts +22 -0
  157. package/build/types/index.js +39 -0
  158. package/{dist/cjs → build}/types/storage/StorageAccess.js +1 -1
  159. package/{dist/mjs → build}/types/storage/StorageFileAccess.d.ts +1 -1
  160. package/{dist/cjs → build}/types/storage/StorageFileAccess.js +1 -1
  161. package/{dist/cjs → build}/types/storage/StorageObject.js +1 -1
  162. package/build/utils/Monitoring.js +48 -0
  163. package/{dist/cjs → build}/utils/NonceTracker.js +3 -3
  164. package/build/utils/PubSub.js +37 -0
  165. package/{dist/mjs → build}/utils/TxManager.d.ts +1 -1
  166. package/build/utils/TxManager.js +179 -0
  167. package/{dist/mjs → build}/utils/compressors/GzipCompressor.d.ts +2 -2
  168. package/{dist/cjs → build}/utils/compressors/GzipCompressor.js +6 -10
  169. package/{dist/cjs → build}/utils/compressors/UncompressedCompressor.d.ts +2 -2
  170. package/build/utils/compressors/UncompressedCompressor.js +17 -0
  171. package/build/utils/compressors/index.d.ts +2 -0
  172. package/{dist/cjs → build}/utils/compressors/index.js +3 -3
  173. package/{dist/mjs → build}/utils/helper.d.ts +3 -3
  174. package/build/utils/helper.js +286 -0
  175. package/{dist/cjs → build}/utils/helpers/getStreamChunks.js +1 -1
  176. package/build/utils/helpers/index.d.ts +1 -0
  177. package/{dist/cjs → build}/utils/helpers/index.js +2 -2
  178. package/{dist/cjs → build}/utils/helpers/tryWithInterval.js +1 -1
  179. package/{dist/cjs → build}/utils/resourceLoaders/BaseResourceLoader.d.ts +1 -1
  180. package/{dist/cjs → build}/utils/resourceLoaders/BaseResourceLoader.js +1 -1
  181. package/{dist/mjs → build}/utils/resourceLoaders/StorageProviderLoader.d.ts +2 -2
  182. package/{dist/cjs → build}/utils/resourceLoaders/StorageProviderLoader.js +8 -8
  183. package/{dist/cjs → build}/utils/resourceLoaders/UrlResourceLoader.d.ts +1 -1
  184. package/{dist/cjs → build}/utils/resourceLoaders/UrlResourceLoader.js +3 -3
  185. package/{dist/cjs → build}/utils/resourceLoaders/getResourceLoader.d.ts +1 -1
  186. package/build/utils/resourceLoaders/getResourceLoader.js +15 -0
  187. package/build/utils/resourceLoaders/index.d.ts +1 -0
  188. package/{dist/cjs → build}/utils/resourceLoaders/index.js +2 -2
  189. package/package.json +5 -13
  190. package/dist/cjs/TIIGenerator.js +0 -247
  191. package/dist/cjs/analytics/Analytics.d.ts +0 -15
  192. package/dist/cjs/analytics/Analytics.js +0 -74
  193. package/dist/cjs/analytics/eventProviders/EventProvider.js +0 -14
  194. package/dist/cjs/analytics/eventProviders/NodeEventProvider.js +0 -48
  195. package/dist/cjs/analytics/transports/AxiosTransport.d.ts +0 -4
  196. package/dist/cjs/analytics/transports/FetchTransport.js +0 -42
  197. package/dist/cjs/analytics/types.d.ts +0 -22
  198. package/dist/cjs/connectors/BlockchainConnector.d.ts +0 -81
  199. package/dist/cjs/connectors/BlockchainConnector.js +0 -358
  200. package/dist/cjs/connectors/BlockchainEventsListener.d.ts +0 -15
  201. package/dist/cjs/crypto/Crypto.js +0 -119
  202. package/dist/cjs/crypto/index.d.ts +0 -2
  203. package/dist/cjs/crypto/nodejs/NativeCrypto.d.ts +0 -58
  204. package/dist/cjs/crypto/nodejs/NativeCrypto.js +0 -178
  205. package/dist/cjs/crypto/nodejs/RSA-Hybrid.js +0 -95
  206. package/dist/cjs/index.d.ts +0 -79
  207. package/dist/cjs/index.js +0 -142
  208. package/dist/cjs/models/Offer.d.ts +0 -130
  209. package/dist/cjs/models/Offer.js +0 -407
  210. package/dist/cjs/models/Order.d.ts +0 -148
  211. package/dist/cjs/models/Order.js +0 -577
  212. package/dist/cjs/models/Provider.d.ts +0 -51
  213. package/dist/cjs/models/Provider.js +0 -137
  214. package/dist/cjs/models/TCB.js +0 -135
  215. package/dist/cjs/models/TeeOffer.d.ts +0 -204
  216. package/dist/cjs/models/TeeOffer.js +0 -600
  217. package/dist/cjs/models/index.d.ts +0 -5
  218. package/dist/cjs/models/index.js +0 -17
  219. package/dist/cjs/package.json +0 -1
  220. package/dist/cjs/polyfills.js +0 -7
  221. package/dist/cjs/proto/Compression.js +0 -132
  222. package/dist/cjs/proto/TRI.d.ts +0 -124
  223. package/dist/cjs/proto/TRI.js +0 -293
  224. package/dist/cjs/proto/TeeProperties.d.ts +0 -263
  225. package/dist/cjs/proto/TeeProperties.js +0 -401
  226. package/dist/cjs/providers/storage/S3StorageProvider.d.ts +0 -25
  227. package/dist/cjs/providers/storage/StorageAdapter.js +0 -323
  228. package/dist/cjs/providers/storage/StorageContentWriter.d.ts +0 -46
  229. package/dist/cjs/providers/storage/StorjAdapter.d.ts +0 -19
  230. package/dist/cjs/providers/storage/StorjStorageProvider.d.ts +0 -25
  231. package/dist/cjs/providers/storage/getStorageProvider.d.ts +0 -4
  232. package/dist/cjs/providers/storage/getStorageProvider.js +0 -20
  233. package/dist/cjs/staticModels/ActiveOffers.d.ts +0 -15
  234. package/dist/cjs/staticModels/ActiveOrders.d.ts +0 -20
  235. package/dist/cjs/staticModels/Consensus.js +0 -247
  236. package/dist/cjs/staticModels/Deposits.d.ts +0 -70
  237. package/dist/cjs/staticModels/Deposits.js +0 -214
  238. package/dist/cjs/staticModels/Marks.js +0 -43
  239. package/dist/cjs/staticModels/Offers.d.ts +0 -65
  240. package/dist/cjs/staticModels/Offers.js +0 -207
  241. package/dist/cjs/staticModels/Orders.d.ts +0 -155
  242. package/dist/cjs/staticModels/Orders.js +0 -502
  243. package/dist/cjs/staticModels/ProviderRegistry.d.ts +0 -74
  244. package/dist/cjs/staticModels/StaticModel.js +0 -46
  245. package/dist/cjs/staticModels/Superpro.js +0 -24
  246. package/dist/cjs/staticModels/SuperproToken.js +0 -154
  247. package/dist/cjs/staticModels/TeeOffers.js +0 -344
  248. package/dist/cjs/store.js +0 -17
  249. package/dist/cjs/tee/QuoteParser.js +0 -189
  250. package/dist/cjs/tee/QuoteValidator.js +0 -416
  251. package/dist/cjs/tee/helpers.js +0 -119
  252. package/dist/cjs/types/DepositInfo.d.ts +0 -6
  253. package/dist/cjs/types/Events.d.ts +0 -34
  254. package/dist/cjs/types/HardwareInfo.d.ts +0 -6
  255. package/dist/cjs/types/Offer.d.ts +0 -33
  256. package/dist/cjs/types/Order.d.ts +0 -56
  257. package/dist/cjs/types/Order.js +0 -58
  258. package/dist/cjs/types/OrderUsage.d.ts +0 -26
  259. package/dist/cjs/types/ResourceLoader.d.ts +0 -28
  260. package/dist/cjs/types/TeeOfferSlot.d.ts +0 -8
  261. package/dist/cjs/types/index.d.ts +0 -22
  262. package/dist/cjs/types/index.js +0 -39
  263. package/dist/cjs/types/storage/StorageFileAccess.d.ts +0 -5
  264. package/dist/cjs/utils/Monitoring.js +0 -48
  265. package/dist/cjs/utils/PubSub.js +0 -37
  266. package/dist/cjs/utils/TxManager.d.ts +0 -25
  267. package/dist/cjs/utils/TxManager.js +0 -179
  268. package/dist/cjs/utils/compressors/GzipCompressor.d.ts +0 -8
  269. package/dist/cjs/utils/compressors/UncompressedCompressor.js +0 -17
  270. package/dist/cjs/utils/compressors/index.d.ts +0 -2
  271. package/dist/cjs/utils/helper.d.ts +0 -44
  272. package/dist/cjs/utils/helper.js +0 -286
  273. package/dist/cjs/utils/helpers/index.d.ts +0 -1
  274. package/dist/cjs/utils/resourceLoaders/StorageProviderLoader.d.ts +0 -18
  275. package/dist/cjs/utils/resourceLoaders/getResourceLoader.js +0 -15
  276. package/dist/cjs/utils/resourceLoaders/index.d.ts +0 -1
  277. package/dist/mjs/TIIGenerator.d.ts +0 -22
  278. package/dist/mjs/TIIGenerator.js +0 -225
  279. package/dist/mjs/analytics/Analytics.js +0 -61
  280. package/dist/mjs/analytics/AnalyticsError.d.ts +0 -7
  281. package/dist/mjs/analytics/AnalyticsError.js +0 -8
  282. package/dist/mjs/analytics/eventProviders/BrowserEventProvider.d.ts +0 -18
  283. package/dist/mjs/analytics/eventProviders/BrowserEventProvider.js +0 -32
  284. package/dist/mjs/analytics/eventProviders/EventProvider.d.ts +0 -24
  285. package/dist/mjs/analytics/eventProviders/EventProvider.js +0 -22
  286. package/dist/mjs/analytics/eventProviders/NodeEventProvider.d.ts +0 -22
  287. package/dist/mjs/analytics/eventProviders/NodeEventProvider.js +0 -50
  288. package/dist/mjs/analytics/transports/AxiosTransport.js +0 -31
  289. package/dist/mjs/analytics/transports/FetchTransport.d.ts +0 -4
  290. package/dist/mjs/analytics/transports/FetchTransport.js +0 -28
  291. package/dist/mjs/analytics/types.js +0 -2
  292. package/dist/mjs/config.d.ts +0 -4
  293. package/dist/mjs/config.js +0 -5
  294. package/dist/mjs/connectors/BaseConnector.d.ts +0 -36
  295. package/dist/mjs/connectors/BaseConnector.js +0 -34
  296. package/dist/mjs/connectors/BlockchainConnector.js +0 -313
  297. package/dist/mjs/connectors/BlockchainEventsListener.js +0 -75
  298. package/dist/mjs/connectors/index.d.ts +0 -2
  299. package/dist/mjs/connectors/index.js +0 -3
  300. package/dist/mjs/constants.d.ts +0 -13
  301. package/dist/mjs/constants.js +0 -14
  302. package/dist/mjs/contracts/abi.d.ts +0 -9916
  303. package/dist/mjs/contracts/abi.js +0 -12941
  304. package/dist/mjs/crypto/Crypto.d.ts +0 -54
  305. package/dist/mjs/crypto/Crypto.js +0 -95
  306. package/dist/mjs/crypto/index.d.ts +0 -2
  307. package/dist/mjs/crypto/index.js +0 -3
  308. package/dist/mjs/crypto/nodejs/AES.d.ts +0 -24
  309. package/dist/mjs/crypto/nodejs/AES.js +0 -74
  310. package/dist/mjs/crypto/nodejs/ARIA.d.ts +0 -24
  311. package/dist/mjs/crypto/nodejs/ARIA.js +0 -73
  312. package/dist/mjs/crypto/nodejs/ECIES.d.ts +0 -6
  313. package/dist/mjs/crypto/nodejs/ECIES.js +0 -51
  314. package/dist/mjs/crypto/nodejs/NativeCrypto.js +0 -163
  315. package/dist/mjs/crypto/nodejs/RSA-Hybrid.d.ts +0 -15
  316. package/dist/mjs/crypto/nodejs/RSA-Hybrid.js +0 -89
  317. package/dist/mjs/index.d.ts +0 -79
  318. package/dist/mjs/index.js +0 -75
  319. package/dist/mjs/logger.d.ts +0 -7
  320. package/dist/mjs/logger.js +0 -7
  321. package/dist/mjs/models/EtlModel.d.ts +0 -34
  322. package/dist/mjs/models/EtlModel.js +0 -96
  323. package/dist/mjs/models/Offer.js +0 -356
  324. package/dist/mjs/models/Order.js +0 -520
  325. package/dist/mjs/models/Provider.js +0 -114
  326. package/dist/mjs/models/TCB.d.ts +0 -58
  327. package/dist/mjs/models/TCB.js +0 -107
  328. package/dist/mjs/models/TeeOffer.js +0 -533
  329. package/dist/mjs/models/index.d.ts +0 -5
  330. package/dist/mjs/models/index.js +0 -6
  331. package/dist/mjs/package.json +0 -1
  332. package/dist/mjs/polyfills.d.ts +0 -0
  333. package/dist/mjs/polyfills.js +0 -7
  334. package/dist/mjs/proto/Compression.d.ts +0 -36
  335. package/dist/mjs/proto/Compression.js +0 -123
  336. package/dist/mjs/proto/TRI.js +0 -284
  337. package/dist/mjs/proto/TeeProperties.js +0 -391
  338. package/dist/mjs/providers/storage/ChunksDownloadDecorator.d.ts +0 -36
  339. package/dist/mjs/providers/storage/ChunksDownloadDecorator.js +0 -139
  340. package/dist/mjs/providers/storage/IStorageProvider.d.ts +0 -15
  341. package/dist/mjs/providers/storage/IStorageProvider.js +0 -2
  342. package/dist/mjs/providers/storage/S3StorageProvider.js +0 -167
  343. package/dist/mjs/providers/storage/StorageAdapter.d.ts +0 -60
  344. package/dist/mjs/providers/storage/StorageAdapter.js +0 -271
  345. package/dist/mjs/providers/storage/StorageContentWriter.js +0 -161
  346. package/dist/mjs/providers/storage/StorageKeyValueAdapter.d.ts +0 -23
  347. package/dist/mjs/providers/storage/StorageKeyValueAdapter.js +0 -119
  348. package/dist/mjs/providers/storage/StorageMetadataReader.d.ts +0 -20
  349. package/dist/mjs/providers/storage/StorageMetadataReader.js +0 -51
  350. package/dist/mjs/providers/storage/StorjAdapter.js +0 -48
  351. package/dist/mjs/providers/storage/StorjStorageProvider.js +0 -141
  352. package/dist/mjs/providers/storage/getStorageProvider.d.ts +0 -4
  353. package/dist/mjs/providers/storage/getStorageProvider.js +0 -15
  354. package/dist/mjs/providers/storage/types.d.ts +0 -7
  355. package/dist/mjs/providers/storage/types.js +0 -2
  356. package/dist/mjs/staticModels/ActiveOffers.js +0 -32
  357. package/dist/mjs/staticModels/ActiveOrders.js +0 -71
  358. package/dist/mjs/staticModels/Consensus.d.ts +0 -42
  359. package/dist/mjs/staticModels/Consensus.js +0 -220
  360. package/dist/mjs/staticModels/Deposits.js +0 -190
  361. package/dist/mjs/staticModels/Marks.d.ts +0 -8
  362. package/dist/mjs/staticModels/Marks.js +0 -25
  363. package/dist/mjs/staticModels/ModelPackager.d.ts +0 -18
  364. package/dist/mjs/staticModels/ModelPackager.js +0 -45
  365. package/dist/mjs/staticModels/Offers.js +0 -184
  366. package/dist/mjs/staticModels/Orders.js +0 -472
  367. package/dist/mjs/staticModels/ProviderRegistry.js +0 -169
  368. package/dist/mjs/staticModels/StaticModel.d.ts +0 -8
  369. package/dist/mjs/staticModels/StaticModel.js +0 -30
  370. package/dist/mjs/staticModels/Superpro.d.ts +0 -16
  371. package/dist/mjs/staticModels/Superpro.js +0 -23
  372. package/dist/mjs/staticModels/SuperproToken.d.ts +0 -48
  373. package/dist/mjs/staticModels/SuperproToken.js +0 -136
  374. package/dist/mjs/staticModels/TeeOffers.d.ts +0 -115
  375. package/dist/mjs/staticModels/TeeOffers.js +0 -309
  376. package/dist/mjs/store.d.ts +0 -15
  377. package/dist/mjs/store.js +0 -15
  378. package/dist/mjs/tee/QuoteParser.d.ts +0 -27
  379. package/dist/mjs/tee/QuoteParser.js +0 -162
  380. package/dist/mjs/tee/QuoteValidator.d.ts +0 -38
  381. package/dist/mjs/tee/QuoteValidator.js +0 -384
  382. package/dist/mjs/tee/errors.d.ts +0 -6
  383. package/dist/mjs/tee/errors.js +0 -7
  384. package/dist/mjs/tee/helpers.d.ts +0 -14
  385. package/dist/mjs/tee/helpers.js +0 -115
  386. package/dist/mjs/tee/interface.d.ts +0 -63
  387. package/dist/mjs/tee/interface.js +0 -2
  388. package/dist/mjs/tee/statuses.d.ts +0 -21
  389. package/dist/mjs/tee/statuses.js +0 -25
  390. package/dist/mjs/tee/types.d.ts +0 -75
  391. package/dist/mjs/tee/types.js +0 -2
  392. package/dist/mjs/types/Compressor.d.ts +0 -5
  393. package/dist/mjs/types/Compressor.js +0 -2
  394. package/dist/mjs/types/Consensus.d.ts +0 -60
  395. package/dist/mjs/types/Consensus.js +0 -16
  396. package/dist/mjs/types/DepositInfo.js +0 -2
  397. package/dist/mjs/types/EtlModel.d.ts +0 -2
  398. package/dist/mjs/types/EtlModel.js +0 -2
  399. package/dist/mjs/types/Events.js +0 -2
  400. package/dist/mjs/types/HardwareInfo.d.ts +0 -6
  401. package/dist/mjs/types/HardwareInfo.js +0 -2
  402. package/dist/mjs/types/Marks.d.ts +0 -9
  403. package/dist/mjs/types/Marks.js +0 -7
  404. package/dist/mjs/types/Offer.js +0 -14
  405. package/dist/mjs/types/OptionInfo.d.ts +0 -8
  406. package/dist/mjs/types/OptionInfo.js +0 -2
  407. package/dist/mjs/types/Order.js +0 -51
  408. package/dist/mjs/types/OrderUsage.js +0 -2
  409. package/dist/mjs/types/Origins.d.ts +0 -6
  410. package/dist/mjs/types/Origins.js +0 -2
  411. package/dist/mjs/types/Provider.d.ts +0 -7
  412. package/dist/mjs/types/Provider.js +0 -2
  413. package/dist/mjs/types/ResourceLoader.js +0 -2
  414. package/dist/mjs/types/SlotInfo.d.ts +0 -6
  415. package/dist/mjs/types/SlotInfo.js +0 -2
  416. package/dist/mjs/types/SlotUsage.d.ts +0 -11
  417. package/dist/mjs/types/SlotUsage.js +0 -6
  418. package/dist/mjs/types/Superpro.d.ts +0 -9
  419. package/dist/mjs/types/Superpro.js +0 -11
  420. package/dist/mjs/types/TeeOfferInfo.d.ts +0 -10
  421. package/dist/mjs/types/TeeOfferInfo.js +0 -2
  422. package/dist/mjs/types/TeeOfferOption.d.ts +0 -13
  423. package/dist/mjs/types/TeeOfferOption.js +0 -2
  424. package/dist/mjs/types/TeeOfferSlot.d.ts +0 -8
  425. package/dist/mjs/types/TeeOfferSlot.js +0 -2
  426. package/dist/mjs/types/ValueOfferSlot.d.ts +0 -16
  427. package/dist/mjs/types/ValueOfferSlot.js +0 -2
  428. package/dist/mjs/types/Web3.d.ts +0 -62
  429. package/dist/mjs/types/Web3.js +0 -2
  430. package/dist/mjs/types/blockchainConnector/StorageAccess.d.ts +0 -8
  431. package/dist/mjs/types/blockchainConnector/StorageAccess.js +0 -2
  432. package/dist/mjs/types/index.d.ts +0 -22
  433. package/dist/mjs/types/index.js +0 -23
  434. package/dist/mjs/types/storage/StorageAccess.d.ts +0 -7
  435. package/dist/mjs/types/storage/StorageAccess.js +0 -2
  436. package/dist/mjs/types/storage/StorageFileAccess.js +0 -2
  437. package/dist/mjs/types/storage/StorageObject.d.ts +0 -8
  438. package/dist/mjs/types/storage/StorageObject.js +0 -2
  439. package/dist/mjs/utils/Monitoring.d.ts +0 -11
  440. package/dist/mjs/utils/Monitoring.js +0 -42
  441. package/dist/mjs/utils/NonceTracker.d.ts +0 -19
  442. package/dist/mjs/utils/NonceTracker.js +0 -73
  443. package/dist/mjs/utils/PubSub.d.ts +0 -9
  444. package/dist/mjs/utils/PubSub.js +0 -32
  445. package/dist/mjs/utils/TxManager.js +0 -162
  446. package/dist/mjs/utils/compressors/GzipCompressor.js +0 -15
  447. package/dist/mjs/utils/compressors/UncompressedCompressor.d.ts +0 -8
  448. package/dist/mjs/utils/compressors/UncompressedCompressor.js +0 -13
  449. package/dist/mjs/utils/compressors/index.d.ts +0 -2
  450. package/dist/mjs/utils/compressors/index.js +0 -3
  451. package/dist/mjs/utils/helper.js +0 -258
  452. package/dist/mjs/utils/helpers/getStreamChunks.d.ts +0 -9
  453. package/dist/mjs/utils/helpers/getStreamChunks.js +0 -31
  454. package/dist/mjs/utils/helpers/index.d.ts +0 -1
  455. package/dist/mjs/utils/helpers/index.js +0 -2
  456. package/dist/mjs/utils/helpers/tryWithInterval.d.ts +0 -13
  457. package/dist/mjs/utils/helpers/tryWithInterval.js +0 -35
  458. package/dist/mjs/utils/resourceLoaders/BaseResourceLoader.d.ts +0 -10
  459. package/dist/mjs/utils/resourceLoaders/BaseResourceLoader.js +0 -10
  460. package/dist/mjs/utils/resourceLoaders/StorageProviderLoader.js +0 -53
  461. package/dist/mjs/utils/resourceLoaders/UrlResourceLoader.d.ts +0 -9
  462. package/dist/mjs/utils/resourceLoaders/UrlResourceLoader.js +0 -44
  463. package/dist/mjs/utils/resourceLoaders/getResourceLoader.d.ts +0 -5
  464. package/dist/mjs/utils/resourceLoaders/getResourceLoader.js +0 -11
  465. package/dist/mjs/utils/resourceLoaders/index.d.ts +0 -1
  466. package/dist/mjs/utils/resourceLoaders/index.js +0 -2
  467. /package/{dist/cjs → build}/analytics/AnalyticsError.d.ts +0 -0
  468. /package/{dist/cjs → build}/analytics/eventProviders/EventProvider.d.ts +0 -0
  469. /package/{dist/cjs → build}/config.d.ts +0 -0
  470. /package/{dist/cjs → build}/constants.d.ts +0 -0
  471. /package/{dist/cjs → build}/crypto/Crypto.d.ts +0 -0
  472. /package/{dist/cjs → build}/crypto/nodejs/AES.d.ts +0 -0
  473. /package/{dist/cjs → build}/crypto/nodejs/ARIA.d.ts +0 -0
  474. /package/{dist/cjs → build}/crypto/nodejs/ECIES.d.ts +0 -0
  475. /package/{dist/cjs → build}/crypto/nodejs/RSA-Hybrid.d.ts +0 -0
  476. /package/{dist/cjs → build}/logger.d.ts +0 -0
  477. /package/{dist/cjs → build}/polyfills.d.ts +0 -0
  478. /package/{dist/cjs → build}/providers/storage/types.d.ts +0 -0
  479. /package/{dist/cjs → build}/staticModels/ModelPackager.d.ts +0 -0
  480. /package/{dist/cjs → build}/store.d.ts +0 -0
  481. /package/{dist/cjs → build}/tee/errors.d.ts +0 -0
  482. /package/{dist/cjs → build}/tee/helpers.d.ts +0 -0
  483. /package/{dist/cjs → build}/tee/statuses.d.ts +0 -0
  484. /package/{dist/cjs → build}/tee/types.d.ts +0 -0
  485. /package/{dist/cjs → build}/types/Compressor.d.ts +0 -0
  486. /package/{dist/cjs → build}/types/EtlModel.d.ts +0 -0
  487. /package/{dist/cjs → build}/types/Marks.d.ts +0 -0
  488. /package/{dist/cjs → build}/types/OptionInfo.d.ts +0 -0
  489. /package/{dist/cjs → build}/types/Origins.d.ts +0 -0
  490. /package/{dist/cjs → build}/types/Provider.d.ts +0 -0
  491. /package/{dist/cjs → build}/types/SlotInfo.d.ts +0 -0
  492. /package/{dist/cjs → build}/types/Superpro.d.ts +0 -0
  493. /package/{dist/cjs → build}/types/Web3.d.ts +0 -0
  494. /package/{dist/cjs → build}/types/storage/StorageAccess.d.ts +0 -0
  495. /package/{dist/cjs → build}/types/storage/StorageObject.d.ts +0 -0
  496. /package/{dist/cjs → build}/utils/Monitoring.d.ts +0 -0
  497. /package/{dist/cjs → build}/utils/NonceTracker.d.ts +0 -0
  498. /package/{dist/cjs → build}/utils/PubSub.d.ts +0 -0
  499. /package/{dist/cjs → build}/utils/helpers/getStreamChunks.d.ts +0 -0
  500. /package/{dist/cjs → build}/utils/helpers/tryWithInterval.d.ts +0 -0
@@ -1,472 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- import { parseBytes32String } from 'ethers/lib/utils.js';
11
- import rootLogger from '../logger.js';
12
- import { checkIfActionAccountInitialized, cleanWeb3Data, convertBigIntToString, incrementMethodCall, } from '../utils/helper.js';
13
- import { orderInfoToRaw, } from '../types/index.js';
14
- import Superpro from './Superpro.js';
15
- import TxManager from '../utils/TxManager.js';
16
- import { BlockchainConnector, BlockchainEventsListener } from '../connectors/index.js';
17
- import { Order } from '../models/index.js';
18
- import StaticModel from './StaticModel.js';
19
- class Orders {
20
- static logger = rootLogger.child({ className: 'Orders' });
21
- static orders;
22
- static get address() {
23
- return Superpro.address;
24
- }
25
- /**
26
- * Function for fetching list of all orders ids
27
- * @returns list of orders ids
28
- */
29
- static async getAll() {
30
- const contract = BlockchainConnector.getInstance().getContract();
31
- this.orders = this.orders ?? [];
32
- const ordersSet = new Set(this.orders);
33
- const ordersCount = Number(await contract.methods.getOrdersCount().call());
34
- for (let orderId = ordersSet.size + 1; orderId <= ordersCount; orderId++) {
35
- ordersSet.add(orderId.toString());
36
- }
37
- this.orders = Array.from(ordersSet);
38
- return this.orders;
39
- }
40
- /**
41
- * Function for fetching orders count
42
- */
43
- static async getCount() {
44
- const contract = BlockchainConnector.getInstance().getContract();
45
- return Number(await contract.methods.getOrdersCount().call());
46
- }
47
- /**
48
- * Function for creating orders
49
- * @param orderInfo - order info for new order
50
- * @param suspended - is orders suspended
51
- * @param transactionOptions - object what contains alternative action account or gas limit (optional)
52
- * @returns {Promise<void>} - Does not return id of created order!
53
- */
54
- static async createOrder(orderInfo, slots, deposit, suspended = false, transactionOptions, checkTxBeforeSend = false) {
55
- const contract = BlockchainConnector.getInstance().getContract();
56
- checkIfActionAccountInitialized(transactionOptions);
57
- deposit = deposit ?? '0';
58
- const args = orderInfo.args;
59
- const orderInfoArguments = orderInfoToRaw(orderInfo);
60
- if (checkTxBeforeSend) {
61
- await TxManager.dryRun(contract.methods.createOrder(orderInfoArguments, slots, args, deposit, suspended), transactionOptions);
62
- }
63
- await TxManager.execute(contract.methods.createOrder(orderInfoArguments, slots, args, deposit, suspended), transactionOptions);
64
- }
65
- static async getByExternalId(filter, fromBlock, toBlock) {
66
- const founded = await StaticModel.findItemsById('OrderCreated', filter, fromBlock, toBlock);
67
- if (!founded)
68
- return null;
69
- return founded;
70
- }
71
- /**
72
- * Function for create workflow
73
- * @param parentOrderInfo - order info for new order
74
- * @param subOrdersInfo - array of sub orders infos
75
- * @param externalId - external id
76
- * @param transactionOptions - object what contains alternative action account or gas limit (optional)
77
- * @returns {Promise<void>} - Does not return id of created order!
78
- */
79
- static async createWorkflow(parentOrderInfo, parentOrderSlot, subOrdersInfo, subOrdersSlots, workflowDeposit, transactionOptions, checkTxBeforeSend = false) {
80
- const contract = BlockchainConnector.getInstance().getContract();
81
- checkIfActionAccountInitialized(transactionOptions);
82
- workflowDeposit = workflowDeposit ?? '0';
83
- const parentArgs = parentOrderInfo.args;
84
- const parentOrderInfoArgs = orderInfoToRaw(parentOrderInfo);
85
- const subOrdersArgs = subOrdersInfo.map((i) => i.args);
86
- const subOrdersInfoArgs = subOrdersInfo.map((o) => orderInfoToRaw(o));
87
- if (checkTxBeforeSend) {
88
- await TxManager.dryRun(contract.methods.createWorkflow(parentOrderInfoArgs, parentOrderSlot, parentArgs, workflowDeposit, subOrdersInfoArgs, subOrdersSlots, subOrdersArgs), transactionOptions);
89
- }
90
- await TxManager.execute(contract.methods.createWorkflow(parentOrderInfoArgs, parentOrderSlot, parentArgs, workflowDeposit, subOrdersInfoArgs, subOrdersSlots, subOrdersArgs), transactionOptions);
91
- }
92
- /**
93
- * Function for cancel workflow
94
- * @param parentOrderId - Parent order id
95
- * @returns {Promise<void>} - Does not return id of created order!
96
- */
97
- static async cancelWorkflow(perentOrderId, transactionOptions) {
98
- const contract = BlockchainConnector.getInstance().getContract();
99
- checkIfActionAccountInitialized(transactionOptions);
100
- await TxManager.execute(contract.methods.cancelWorkflow(perentOrderId), transactionOptions);
101
- }
102
- /**
103
- * Function for refilling order deposit
104
- * @param orderId - order id
105
- * @param amount - amount of tokens to refilling
106
- * @param transactionOptions - object what contains alternative action account or gas limit (optional)
107
- */
108
- static async refillOrderDeposit(orderId, amount, transactionOptions) {
109
- const contract = BlockchainConnector.getInstance().getContract();
110
- checkIfActionAccountInitialized(transactionOptions);
111
- await TxManager.execute(contract.methods.refillOrder(orderId, amount), transactionOptions);
112
- }
113
- static async unlockProfitByOrderList(orderIds, transactionOptions) {
114
- const contract = BlockchainConnector.getInstance().getContract();
115
- checkIfActionAccountInitialized(transactionOptions);
116
- let executedCount;
117
- try {
118
- executedCount = Number((await TxManager.dryRun(contract.methods.unlockProfitByList(orderIds), transactionOptions)));
119
- }
120
- catch (e) {
121
- executedCount = 0;
122
- }
123
- if (executedCount === orderIds.length) {
124
- await TxManager.execute(contract.methods.unlockProfitByList(orderIds), transactionOptions);
125
- }
126
- else {
127
- for (const orderId of orderIds) {
128
- await new Order(orderId).unlockProfit();
129
- }
130
- }
131
- }
132
- /**
133
- * Function for adding event listeners on order created event in orders factory contract
134
- * @param callback - function for processing created order
135
- * @returns unsubscribe - unsubscribe function from event
136
- */
137
- static onCreated(callback) {
138
- const contract = BlockchainEventsListener.getInstance().getContract();
139
- const logger = this.logger.child({ method: 'onOrderCreated' });
140
- const subscription = contract.events.OrderCreated();
141
- subscription.on('data', (event) => {
142
- const parsedEvent = cleanWeb3Data(event.returnValues);
143
- callback(parsedEvent.consumer, parseBytes32String(parsedEvent.externalId), parsedEvent.offerId, parsedEvent.parentOrderId, parsedEvent.orderId, parsedEvent.deposit, parsedEvent.status, {
144
- index: Number(event.blockNumber),
145
- hash: event.blockHash,
146
- });
147
- });
148
- subscription.on('error', (error) => {
149
- logger.warn(error);
150
- });
151
- return () => subscription.unsubscribe();
152
- }
153
- /**
154
- * Function for adding event listeners on order started event in orders contract
155
- * @param callback - function for processing suborder filled event
156
- * @param orderId - order id
157
- * @returns unsubscribe - unsubscribe function from event
158
- */
159
- static onStarted(callback, orderId) {
160
- const contract = BlockchainEventsListener.getInstance().getContract();
161
- const logger = this.logger.child({ method: 'onOrderStarted' });
162
- const subscription = contract.events.OrderStarted();
163
- subscription.on('data', (event) => {
164
- const parsedEvent = cleanWeb3Data(event.returnValues);
165
- if (orderId && parsedEvent.orderId != convertBigIntToString(orderId)) {
166
- return;
167
- }
168
- callback(parsedEvent.orderId, parsedEvent.consumer, {
169
- index: Number(event.blockNumber),
170
- hash: event.blockHash,
171
- });
172
- });
173
- subscription.on('error', (error) => {
174
- logger.warn(error);
175
- });
176
- return () => subscription.unsubscribe();
177
- }
178
- /**
179
- * Function for adding event listeners on order updated status event in orders contract
180
- * @param callback - function for processing order updated status event
181
- * @param orderId - order id
182
- * @returns unsubscribe - unsubscribe function from event
183
- */
184
- static onStatusUpdated(callback, orderId) {
185
- const contract = BlockchainEventsListener.getInstance().getContract();
186
- const logger = this.logger.child({ method: 'onOrdersStatusUpdated' });
187
- const subscription = contract.events.OrderStatusUpdated();
188
- subscription.on('data', (event) => {
189
- const parsedEvent = cleanWeb3Data(event.returnValues);
190
- if (orderId && parsedEvent.orderId != convertBigIntToString(orderId)) {
191
- return;
192
- }
193
- callback(parsedEvent.orderId, parsedEvent.status, {
194
- index: Number(event.blockNumber),
195
- hash: event.blockHash,
196
- });
197
- });
198
- subscription.on('error', (error) => {
199
- logger.warn(error);
200
- });
201
- return () => subscription.unsubscribe();
202
- }
203
- /**
204
- * Function for adding event listeners on order refilled event in orders contract
205
- * @param callback - function for processing order refilled event
206
- * @param consumer - consumer address
207
- * @param orderId - order id
208
- * @returns unsubscribe - unsubscribe function from event
209
- */
210
- static onDepositRefilled(callback, consumer, orderId) {
211
- const contract = BlockchainEventsListener.getInstance().getContract();
212
- const logger = this.logger.child({ method: 'onOrderDepositRefilled' });
213
- const subscription = contract.events.OrderDepositRefilled();
214
- subscription.on('data', (event) => {
215
- const parsedEvent = cleanWeb3Data(event.returnValues);
216
- if (orderId && parsedEvent.orderId != convertBigIntToString(orderId)) {
217
- return;
218
- }
219
- if (consumer && parsedEvent.consumer != consumer) {
220
- return;
221
- }
222
- callback(parsedEvent.orderId, parsedEvent.consumer, parsedEvent.amount, {
223
- index: Number(event.blockNumber),
224
- hash: event.blockHash,
225
- });
226
- });
227
- subscription.on('error', (error) => {
228
- logger.warn(error);
229
- });
230
- return () => subscription.unsubscribe();
231
- }
232
- /**
233
- * Function for adding event listeners on order changed withdrawn event in orders contract
234
- * @param callback - function for processing order changed withdrawn event
235
- * @param orderId - order id
236
- * @returns unsubscribe - unsubscribe function from event
237
- */
238
- static onChangedWithdrawn(callback, orderId) {
239
- const contract = BlockchainEventsListener.getInstance().getContract();
240
- const logger = this.logger.child({ method: 'onOrderChangeWithdrawn' });
241
- const subscription = contract.events.OrderChangeWithdrawn();
242
- subscription.on('data', (event) => {
243
- const parsedEvent = cleanWeb3Data(event.returnValues);
244
- if (orderId && parsedEvent.orderId != convertBigIntToString(orderId)) {
245
- return;
246
- }
247
- callback(parsedEvent.orderId, parsedEvent.consumer, parsedEvent.change, {
248
- index: Number(event.blockNumber),
249
- hash: event.blockHash,
250
- });
251
- });
252
- subscription.on('error', (error) => {
253
- logger.warn(error);
254
- });
255
- return () => subscription.unsubscribe();
256
- }
257
- /**
258
- * Function for adding event listeners on order changed refunded event in orders contract
259
- * @param callback - function for processing order changed refunded event
260
- * @param tokenReceiver - token receiver address
261
- * @param orderId - order id
262
- * @returns unsubscribe - unsubscribe function from event
263
- */
264
- static onProfitWithdrawn(callback, orderId, tokenReceiver) {
265
- const contract = BlockchainEventsListener.getInstance().getContract();
266
- const logger = this.logger.child({ method: 'onOrderProfitWithdrawn' });
267
- const subscription = contract.events.OrderProfitWithdrawn();
268
- subscription.on('data', (event) => {
269
- const parsedEvent = cleanWeb3Data(event.returnValues);
270
- if (orderId && parsedEvent.orderId != convertBigIntToString(orderId)) {
271
- return;
272
- }
273
- if (tokenReceiver && parsedEvent.tokenReceiver != tokenReceiver) {
274
- return;
275
- }
276
- callback(parsedEvent.orderId, parsedEvent.tokenReceiver, parsedEvent.profit, {
277
- index: Number(event.blockNumber),
278
- hash: event.blockHash,
279
- });
280
- });
281
- subscription.on('error', (error) => {
282
- logger.warn(error);
283
- });
284
- return () => subscription.unsubscribe();
285
- }
286
- /**
287
- * Function for adding event listeners on order awaiting payment event in orders contract
288
- * @param callback - function for processing order awaiting payment event
289
- * @param consumer - order creator address
290
- * @param orderId - order id
291
- * @returns unsubscribe - unsubscribe function from event
292
- */
293
- static onAwaitingPaymentChanged(callback, consumer, orderId) {
294
- const contract = BlockchainEventsListener.getInstance().getContract();
295
- const logger = this.logger.child({ method: 'onOrderAwaitingPaymentChanged' });
296
- const subscription = contract.events.OrderAwaitingPaymentChanged();
297
- subscription.on('data', (event) => {
298
- const parsedEvent = cleanWeb3Data(event.returnValues);
299
- if (orderId && parsedEvent.orderId != convertBigIntToString(orderId)) {
300
- return;
301
- }
302
- if (consumer && parsedEvent.consumer != consumer) {
303
- return;
304
- }
305
- callback(parsedEvent.orderId, parsedEvent.consumer, parsedEvent.awaitingPayment, {
306
- index: Number(event.blockNumber),
307
- hash: event.blockHash,
308
- });
309
- });
310
- subscription.on('error', (error) => {
311
- logger.warn(error);
312
- });
313
- return () => subscription.unsubscribe();
314
- }
315
- /**
316
- * Function for adding event listeners on order encrypted result updated event in orders contract
317
- * @param callback - function for processing order encrypted result updated event
318
- * @param consumer - order creator address
319
- * @param orderId - order id
320
- * @returns unsubscribe - unsubscribe function from event
321
- */
322
- static onEncryptedResultUpdated(callback, consumer, orderId) {
323
- const contract = BlockchainEventsListener.getInstance().getContract();
324
- const logger = this.logger.child({ method: 'onOrderEncryptedResultUpdated' });
325
- const subscription = contract.events.OrderEncryptedResultUpdated();
326
- subscription.on('data', (event) => {
327
- const parsedEvent = cleanWeb3Data(event.returnValues);
328
- if (orderId && parsedEvent.orderId != convertBigIntToString(orderId)) {
329
- return;
330
- }
331
- if (consumer && parsedEvent.consumer != consumer) {
332
- return;
333
- }
334
- callback(parsedEvent.orderId, parsedEvent.consumer, parsedEvent.encryptedResult, {
335
- index: Number(event.blockNumber),
336
- hash: event.blockHash,
337
- });
338
- });
339
- subscription.on('error', (error) => {
340
- logger.warn(error);
341
- });
342
- return () => subscription.unsubscribe();
343
- }
344
- /**
345
- * Function for adding event listeners on OrderOptionsDepositSpentChanged event in orders contract
346
- * @param callback - function for processing order encrypted result updated event
347
- * @param consumer - order creator address
348
- * @param orderId - order id
349
- * @returns unsubscribe - unsubscribe function from event
350
- */
351
- static onOptionsDepositSpentChanged(callback, consumer, orderId) {
352
- const contract = BlockchainEventsListener.getInstance().getContract();
353
- const logger = this.logger.child({ method: 'onOrderOptionsDepositSpentChanged' });
354
- const subscription = contract.events.OrderOptionsDepositSpentChanged();
355
- subscription.on('data', (event) => {
356
- const parsedEvent = cleanWeb3Data(event.returnValues);
357
- if (orderId && parsedEvent.orderId != convertBigIntToString(orderId)) {
358
- return;
359
- }
360
- if (consumer && parsedEvent.consumer != consumer) {
361
- return;
362
- }
363
- callback(parsedEvent.consumer, parsedEvent.orderId, parsedEvent.value, {
364
- index: Number(event.blockNumber),
365
- hash: event.blockHash,
366
- });
367
- });
368
- subscription.on('error', (error) => {
369
- logger.warn(error);
370
- });
371
- return () => subscription.unsubscribe();
372
- }
373
- /**
374
- * Function for adding event listeners on onOrderProfitUnlocked event in orders contract
375
- * @param callback - function for processing order encrypted result updated event
376
- * @param tokenReceiver - tokenReceiver
377
- * @param orderId - order id
378
- * @returns unsubscribe - unsubscribe function from event
379
- */
380
- static onOProfitUnlocked(callback, tokenReceiver, orderId) {
381
- const contract = BlockchainEventsListener.getInstance().getContract();
382
- const logger = this.logger.child({ method: 'onOrderProfitUnlocked' });
383
- const subscription = contract.events.OrderProfitUnlocked();
384
- subscription.on('data', (event) => {
385
- const parsedEvent = cleanWeb3Data(event.returnValues);
386
- if (orderId && parsedEvent.orderId != convertBigIntToString(orderId)) {
387
- return;
388
- }
389
- if (tokenReceiver && parsedEvent.tokenReceiver != tokenReceiver) {
390
- return;
391
- }
392
- callback(parsedEvent.tokenReceiver, parsedEvent.orderId, parsedEvent.profit, {
393
- index: Number(event.blockNumber),
394
- hash: event.blockHash,
395
- });
396
- });
397
- subscription.on('error', (error) => {
398
- logger.warn(error);
399
- });
400
- return () => subscription.unsubscribe();
401
- }
402
- /**
403
- * Function that calculates resource needed for order
404
- * @param selectedUsage - structure that order.getSelectedUsage() method returns
405
- * @returns calculated resources
406
- */
407
- static accumulatedSlotInfo(selectedUsage) {
408
- const slotCount = selectedUsage.slotCount;
409
- const { cpuCores, ram, diskUsage, gpuCores } = selectedUsage.slotInfo;
410
- return {
411
- cpuCores: cpuCores * slotCount,
412
- ram: ram * slotCount,
413
- diskUsage: diskUsage * slotCount,
414
- gpuCores: gpuCores * slotCount,
415
- };
416
- }
417
- /**
418
- * Function that calculates total price for slot usage
419
- * @param selectedUsage - structure that order.getSelectedUsage() method returns
420
- * @returns slotUsage with totalPrices
421
- */
422
- static accumulatedSlotUsage(selectedUsage) {
423
- const slotCount = selectedUsage.slotCount;
424
- const slotUsage = selectedUsage.slotUsage;
425
- const totalPrice = BigInt(slotUsage.price) * BigInt(slotCount);
426
- return {
427
- priceType: slotUsage.priceType,
428
- price: totalPrice.toString(),
429
- minTimeMinutes: slotUsage.minTimeMinutes,
430
- maxTimeMinutes: slotUsage.maxTimeMinutes,
431
- };
432
- }
433
- /**
434
- * function that calculated requested options for order run
435
- * @param selectedUsage - structure that order.getSelectedUsage() method returns
436
- * @returns calculated options
437
- */
438
- static accumulatedOptionsInfo(selectedUsage) {
439
- return selectedUsage.optionInfo.reduce((accumulatedInfo, optionInfo, optionInfoIndex) => {
440
- const { bandwidth, externalPort, traffic } = optionInfo;
441
- const optionCount = selectedUsage.optionsCount.at(optionInfoIndex) || 0;
442
- accumulatedInfo.bandwidth += bandwidth * optionCount;
443
- accumulatedInfo.externalPort += externalPort * optionCount;
444
- accumulatedInfo.traffic += traffic * optionCount;
445
- return accumulatedInfo;
446
- }, {
447
- bandwidth: 0,
448
- externalPort: 0,
449
- traffic: 0,
450
- });
451
- }
452
- }
453
- __decorate([
454
- incrementMethodCall(),
455
- __metadata("design:type", Function),
456
- __metadata("design:paramtypes", [Object, Object, String, Object, Object, Object]),
457
- __metadata("design:returntype", Promise)
458
- ], Orders, "createOrder", null);
459
- __decorate([
460
- incrementMethodCall(),
461
- __metadata("design:type", Function),
462
- __metadata("design:paramtypes", [Object, Object, Object]),
463
- __metadata("design:returntype", Promise)
464
- ], Orders, "getByExternalId", null);
465
- __decorate([
466
- incrementMethodCall(),
467
- __metadata("design:type", Function),
468
- __metadata("design:paramtypes", [Object, Object, Array, Array, String, Object, Object]),
469
- __metadata("design:returntype", Promise)
470
- ], Orders, "createWorkflow", null);
471
- export default Orders;
472
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0YXRpY01vZGVscy9PcmRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxVQUFVLE1BQU0sY0FBYyxDQUFDO0FBQ3RDLE9BQU8sRUFDTCwrQkFBK0IsRUFDL0IsYUFBYSxFQUNiLHFCQUFxQixFQUNyQixtQkFBbUIsR0FDcEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBYUwsY0FBYyxHQUNmLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxRQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUzQyxPQUFPLFdBQVcsTUFBTSxrQkFBa0IsQ0FBQztBQUUzQyxNQUFNLE1BQU07SUFDRixNQUFNLENBQVUsTUFBTSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUVwRSxNQUFNLENBQUMsTUFBTSxDQUFrQjtJQUUvQixNQUFNLEtBQUssT0FBTztRQUN2QixPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTTtRQUN4QixNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ2hDLE1BQU0sU0FBUyxHQUFHLElBQUks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