@super-protocol/sdk-js 2.1.2 → 2.1.3

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 (526) hide show
  1. package/{build → dist/cjs}/TIIGenerator.d.ts +2 -2
  2. package/dist/cjs/TIIGenerator.js +230 -0
  3. package/{build → dist/cjs}/analytics/Analytics.d.ts +2 -2
  4. package/dist/cjs/analytics/Analytics.js +67 -0
  5. package/{build → dist/cjs}/analytics/AnalyticsError.js +2 -1
  6. package/{build → dist/cjs}/analytics/eventProviders/BrowserEventProvider.d.ts +1 -1
  7. package/dist/cjs/analytics/eventProviders/BrowserEventProvider.js +38 -0
  8. package/dist/cjs/analytics/eventProviders/EventProvider.js +25 -0
  9. package/{build → dist/cjs}/analytics/eventProviders/NodeEventProvider.d.ts +1 -1
  10. package/dist/cjs/analytics/eventProviders/NodeEventProvider.js +56 -0
  11. package/{build → dist/cjs}/analytics/transports/AxiosTransport.d.ts +1 -1
  12. package/dist/cjs/analytics/transports/AxiosTransport.js +60 -0
  13. package/{build → dist/cjs}/analytics/transports/FetchTransport.d.ts +1 -1
  14. package/dist/cjs/analytics/transports/FetchTransport.js +31 -0
  15. package/{build → dist/cjs}/analytics/types.d.ts +2 -2
  16. package/{build → dist/cjs}/analytics/types.js +1 -1
  17. package/{build → dist/cjs}/config.js +1 -1
  18. package/{build → dist/cjs}/connectors/BaseConnector.d.ts +1 -1
  19. package/dist/cjs/connectors/BaseConnector.js +41 -0
  20. package/{build → dist/cjs}/connectors/BlockchainConnector.d.ts +3 -3
  21. package/dist/cjs/connectors/BlockchainConnector.js +341 -0
  22. package/{build → dist/cjs}/connectors/BlockchainEventsListener.d.ts +1 -1
  23. package/dist/cjs/connectors/BlockchainEventsListener.js +103 -0
  24. package/{build → dist/cjs}/connectors/index.d.ts +2 -2
  25. package/{build → dist/cjs}/connectors/index.js +5 -5
  26. package/{build → dist/cjs}/constants.js +1 -1
  27. package/{build → dist/cjs}/contracts/abi.js +1 -1
  28. package/dist/cjs/crypto/Crypto.js +100 -0
  29. package/dist/cjs/crypto/index.d.ts +2 -0
  30. package/{build → dist/cjs}/crypto/index.js +3 -3
  31. package/dist/cjs/crypto/nodejs/AES.js +79 -0
  32. package/dist/cjs/crypto/nodejs/ARIA.js +78 -0
  33. package/dist/cjs/crypto/nodejs/ECIES.js +56 -0
  34. package/{build → dist/cjs}/crypto/nodejs/NativeCrypto.d.ts +3 -3
  35. package/dist/cjs/crypto/nodejs/NativeCrypto.js +165 -0
  36. package/dist/cjs/crypto/nodejs/RSA-Hybrid.js +94 -0
  37. package/dist/cjs/index.d.ts +80 -0
  38. package/dist/cjs/index.js +143 -0
  39. package/{build → dist/cjs}/logger.js +1 -1
  40. package/{build → dist/cjs}/models/EtlModel.d.ts +1 -1
  41. package/dist/cjs/models/EtlModel.js +126 -0
  42. package/{build → dist/cjs}/models/Offer.d.ts +1 -1
  43. package/dist/cjs/models/Offer.js +361 -0
  44. package/{build → dist/cjs}/models/Order.d.ts +1 -1
  45. package/dist/cjs/models/Order.js +543 -0
  46. package/{build → dist/cjs}/models/Provider.d.ts +1 -1
  47. package/dist/cjs/models/Provider.js +119 -0
  48. package/{build → dist/cjs}/models/TCB.d.ts +1 -1
  49. package/dist/cjs/models/TCB.js +112 -0
  50. package/{build → dist/cjs}/models/TeeOffer.d.ts +2 -2
  51. package/dist/cjs/models/TeeOffer.js +538 -0
  52. package/dist/cjs/models/index.d.ts +5 -0
  53. package/dist/cjs/models/index.js +17 -0
  54. package/dist/cjs/package.json +1 -0
  55. package/dist/cjs/polyfills.js +7 -0
  56. package/{build → dist/cjs}/proto/Compression.d.ts +1 -1
  57. package/dist/cjs/proto/Compression.js +131 -0
  58. package/{build → dist/cjs}/proto/TRI.d.ts +1 -1
  59. package/dist/cjs/proto/TRI.js +290 -0
  60. package/{build → dist/cjs}/proto/TeeProperties.d.ts +1 -1
  61. package/dist/cjs/proto/TeeProperties.js +397 -0
  62. package/{build → dist/cjs}/providers/storage/ChunksDownloadDecorator.d.ts +2 -2
  63. package/dist/cjs/providers/storage/ChunksDownloadDecorator.js +145 -0
  64. package/{build → dist/cjs}/providers/storage/IStorageProvider.d.ts +1 -1
  65. package/{build → dist/cjs}/providers/storage/IStorageProvider.js +1 -1
  66. package/{build → dist/cjs}/providers/storage/S3StorageProvider.d.ts +2 -2
  67. package/dist/cjs/providers/storage/S3StorageProvider.js +171 -0
  68. package/{build → dist/cjs}/providers/storage/StorageAdapter.d.ts +2 -2
  69. package/dist/cjs/providers/storage/StorageAdapter.js +301 -0
  70. package/{build → dist/cjs}/providers/storage/StorageContentWriter.d.ts +2 -2
  71. package/dist/cjs/providers/storage/StorageContentWriter.js +168 -0
  72. package/{build → dist/cjs}/providers/storage/StorageKeyValueAdapter.d.ts +2 -2
  73. package/dist/cjs/providers/storage/StorageKeyValueAdapter.js +125 -0
  74. package/{build → dist/cjs}/providers/storage/StorageMetadataReader.d.ts +3 -3
  75. package/dist/cjs/providers/storage/StorageMetadataReader.js +57 -0
  76. package/{build → dist/cjs}/providers/storage/StorjAdapter.d.ts +2 -2
  77. package/dist/cjs/providers/storage/StorjAdapter.js +54 -0
  78. package/{build → dist/cjs}/providers/storage/StorjStorageProvider.d.ts +2 -3
  79. package/dist/cjs/providers/storage/StorjStorageProvider.js +145 -0
  80. package/dist/cjs/providers/storage/getStorageProvider.d.ts +4 -0
  81. package/dist/cjs/providers/storage/getStorageProvider.js +20 -0
  82. package/{build → dist/cjs}/providers/storage/types.js +1 -1
  83. package/{build → dist/cjs}/staticModels/ActiveOffers.d.ts +1 -1
  84. package/dist/cjs/staticModels/ActiveOffers.js +37 -0
  85. package/{build → dist/cjs}/staticModels/ActiveOrders.d.ts +1 -1
  86. package/dist/cjs/staticModels/ActiveOrders.js +76 -0
  87. package/{build → dist/cjs}/staticModels/Consensus.d.ts +1 -1
  88. package/dist/cjs/staticModels/Consensus.js +225 -0
  89. package/{build → dist/cjs}/staticModels/Deposits.d.ts +1 -1
  90. package/dist/cjs/staticModels/Deposits.js +195 -0
  91. package/{build → dist/cjs}/staticModels/Marks.d.ts +1 -1
  92. package/dist/cjs/staticModels/Marks.js +30 -0
  93. package/dist/cjs/staticModels/ModelPackager.js +49 -0
  94. package/{build → dist/cjs}/staticModels/Offers.d.ts +2 -2
  95. package/dist/cjs/staticModels/Offers.js +189 -0
  96. package/{build → dist/cjs}/staticModels/Orders.d.ts +1 -1
  97. package/dist/cjs/staticModels/Orders.js +504 -0
  98. package/{build → dist/cjs}/staticModels/ProviderRegistry.d.ts +1 -1
  99. package/dist/cjs/staticModels/ProviderRegistry.js +174 -0
  100. package/{build → dist/cjs}/staticModels/StaticModel.d.ts +2 -2
  101. package/dist/cjs/staticModels/StaticModel.js +35 -0
  102. package/{build → dist/cjs}/staticModels/Superpro.d.ts +2 -2
  103. package/dist/cjs/staticModels/Superpro.js +25 -0
  104. package/{build → dist/cjs}/staticModels/SuperproToken.d.ts +1 -1
  105. package/dist/cjs/staticModels/SuperproToken.js +141 -0
  106. package/{build → dist/cjs}/staticModels/TeeOffers.d.ts +1 -1
  107. package/dist/cjs/staticModels/TeeOffers.js +314 -0
  108. package/dist/cjs/store.js +17 -0
  109. package/{build → dist/cjs}/tee/QuoteParser.d.ts +1 -1
  110. package/dist/cjs/tee/QuoteParser.js +189 -0
  111. package/{build → dist/cjs}/tee/QuoteValidator.d.ts +1 -1
  112. package/dist/cjs/tee/QuoteValidator.js +391 -0
  113. package/{build → dist/cjs}/tee/errors.js +1 -1
  114. package/dist/cjs/tee/helpers.js +120 -0
  115. package/{build → dist/cjs}/tee/interface.d.ts +1 -1
  116. package/{build → dist/cjs}/tee/interface.js +1 -1
  117. package/{build → dist/cjs}/tee/statuses.js +4 -4
  118. package/{build → dist/cjs}/tee/types.d.ts +5 -0
  119. package/{build → dist/cjs}/tee/types.js +1 -1
  120. package/{build → dist/cjs}/types/Compressor.js +1 -1
  121. package/{build → dist/cjs}/types/Consensus.d.ts +1 -1
  122. package/{build → dist/cjs}/types/Consensus.js +2 -2
  123. package/{build → dist/cjs}/types/DepositInfo.d.ts +1 -1
  124. package/{build → dist/cjs}/types/DepositInfo.js +1 -1
  125. package/{build → dist/cjs}/types/EtlModel.js +1 -1
  126. package/{build → dist/cjs}/types/Events.d.ts +2 -2
  127. package/{build → dist/cjs}/types/Events.js +1 -1
  128. package/dist/cjs/types/HardwareInfo.d.ts +6 -0
  129. package/{build → dist/cjs}/types/HardwareInfo.js +1 -1
  130. package/{build → dist/cjs}/types/Marks.js +2 -2
  131. package/{build → dist/cjs}/types/Offer.d.ts +1 -1
  132. package/dist/cjs/types/Offer.js +17 -0
  133. package/{build → dist/cjs}/types/OptionInfo.js +1 -1
  134. package/{build → dist/cjs}/types/Order.d.ts +1 -1
  135. package/{build → dist/cjs}/types/Order.js +2 -2
  136. package/{build → dist/cjs}/types/OrderUsage.d.ts +4 -4
  137. package/{build → dist/cjs}/types/OrderUsage.js +1 -1
  138. package/{build → dist/cjs}/types/Origins.js +1 -1
  139. package/{build → dist/cjs}/types/Provider.js +1 -1
  140. package/{build → dist/cjs}/types/ResourceLoader.d.ts +1 -1
  141. package/{build → dist/cjs}/types/ResourceLoader.js +1 -1
  142. package/{build → dist/cjs}/types/SlotInfo.js +1 -1
  143. package/{build → dist/cjs}/types/SlotUsage.d.ts +1 -1
  144. package/{build → dist/cjs}/types/SlotUsage.js +2 -2
  145. package/{build → dist/cjs}/types/Superpro.js +2 -2
  146. package/{build → dist/cjs}/types/TeeOfferInfo.d.ts +1 -1
  147. package/{build → dist/cjs}/types/TeeOfferInfo.js +1 -1
  148. package/{build → dist/cjs}/types/TeeOfferOption.d.ts +3 -3
  149. package/{build → dist/cjs}/types/TeeOfferOption.js +1 -1
  150. package/dist/cjs/types/TeeOfferSlot.d.ts +8 -0
  151. package/{build → dist/cjs}/types/TeeOfferSlot.js +1 -1
  152. package/{build → dist/cjs}/types/ValueOfferSlot.d.ts +4 -4
  153. package/{build → dist/cjs}/types/ValueOfferSlot.js +1 -1
  154. package/{build → dist/cjs}/types/Web3.js +1 -1
  155. package/{build → dist/cjs}/types/blockchainConnector/StorageAccess.d.ts +1 -1
  156. package/{build → dist/cjs}/types/blockchainConnector/StorageAccess.js +1 -1
  157. package/dist/cjs/types/index.d.ts +22 -0
  158. package/dist/cjs/types/index.js +39 -0
  159. package/{build → dist/cjs}/types/storage/StorageAccess.js +1 -1
  160. package/{build → dist/cjs}/types/storage/StorageFileAccess.d.ts +1 -1
  161. package/{build → dist/cjs}/types/storage/StorageFileAccess.js +1 -1
  162. package/{build → dist/cjs}/types/storage/StorageObject.js +1 -1
  163. package/dist/cjs/utils/Monitoring.js +49 -0
  164. package/dist/cjs/utils/NonceTracker.js +78 -0
  165. package/dist/cjs/utils/PubSub.js +35 -0
  166. package/{build → dist/cjs}/utils/TxManager.d.ts +1 -1
  167. package/dist/cjs/utils/TxManager.js +169 -0
  168. package/{build → dist/cjs}/utils/compressors/GzipCompressor.d.ts +2 -2
  169. package/dist/cjs/utils/compressors/GzipCompressor.js +22 -0
  170. package/{build → dist/cjs}/utils/compressors/UncompressedCompressor.d.ts +2 -2
  171. package/dist/cjs/utils/compressors/UncompressedCompressor.js +17 -0
  172. package/dist/cjs/utils/compressors/index.d.ts +2 -0
  173. package/{build → dist/cjs}/utils/compressors/index.js +3 -3
  174. package/{build → dist/cjs}/utils/helper.d.ts +3 -3
  175. package/dist/cjs/utils/helper.js +289 -0
  176. package/dist/cjs/utils/helpers/getStreamChunks.js +35 -0
  177. package/dist/cjs/utils/helpers/index.d.ts +1 -0
  178. package/{build → dist/cjs}/utils/helpers/index.js +2 -2
  179. package/dist/cjs/utils/helpers/tryWithInterval.js +39 -0
  180. package/{build → dist/cjs}/utils/resourceLoaders/BaseResourceLoader.d.ts +1 -1
  181. package/dist/cjs/utils/resourceLoaders/BaseResourceLoader.js +14 -0
  182. package/{build → dist/cjs}/utils/resourceLoaders/StorageProviderLoader.d.ts +2 -2
  183. package/dist/cjs/utils/resourceLoaders/StorageProviderLoader.js +60 -0
  184. package/{build → dist/cjs}/utils/resourceLoaders/UrlResourceLoader.d.ts +1 -1
  185. package/dist/cjs/utils/resourceLoaders/UrlResourceLoader.js +51 -0
  186. package/{build → dist/cjs}/utils/resourceLoaders/getResourceLoader.d.ts +1 -1
  187. package/dist/cjs/utils/resourceLoaders/getResourceLoader.js +15 -0
  188. package/dist/cjs/utils/resourceLoaders/index.d.ts +1 -0
  189. package/{build → dist/cjs}/utils/resourceLoaders/index.js +2 -2
  190. package/dist/mjs/TIIGenerator.d.ts +22 -0
  191. package/dist/mjs/TIIGenerator.js +225 -0
  192. package/dist/mjs/analytics/Analytics.d.ts +15 -0
  193. package/dist/mjs/analytics/Analytics.js +61 -0
  194. package/dist/mjs/analytics/AnalyticsError.d.ts +7 -0
  195. package/dist/mjs/analytics/AnalyticsError.js +8 -0
  196. package/dist/mjs/analytics/eventProviders/BrowserEventProvider.d.ts +18 -0
  197. package/dist/mjs/analytics/eventProviders/BrowserEventProvider.js +32 -0
  198. package/dist/mjs/analytics/eventProviders/EventProvider.d.ts +24 -0
  199. package/dist/mjs/analytics/eventProviders/EventProvider.js +22 -0
  200. package/dist/mjs/analytics/eventProviders/NodeEventProvider.d.ts +22 -0
  201. package/dist/mjs/analytics/eventProviders/NodeEventProvider.js +50 -0
  202. package/dist/mjs/analytics/transports/AxiosTransport.d.ts +4 -0
  203. package/dist/mjs/analytics/transports/AxiosTransport.js +31 -0
  204. package/dist/mjs/analytics/transports/FetchTransport.d.ts +4 -0
  205. package/dist/mjs/analytics/transports/FetchTransport.js +28 -0
  206. package/dist/mjs/analytics/types.d.ts +22 -0
  207. package/dist/mjs/analytics/types.js +2 -0
  208. package/dist/mjs/config.d.ts +4 -0
  209. package/dist/mjs/config.js +5 -0
  210. package/dist/mjs/connectors/BaseConnector.d.ts +36 -0
  211. package/dist/mjs/connectors/BaseConnector.js +34 -0
  212. package/dist/mjs/connectors/BlockchainConnector.d.ts +81 -0
  213. package/dist/mjs/connectors/BlockchainConnector.js +313 -0
  214. package/dist/mjs/connectors/BlockchainEventsListener.d.ts +15 -0
  215. package/dist/mjs/connectors/BlockchainEventsListener.js +75 -0
  216. package/dist/mjs/connectors/index.d.ts +2 -0
  217. package/dist/mjs/connectors/index.js +3 -0
  218. package/dist/mjs/constants.d.ts +13 -0
  219. package/dist/mjs/constants.js +14 -0
  220. package/dist/mjs/contracts/abi.d.ts +9842 -0
  221. package/dist/mjs/contracts/abi.js +12844 -0
  222. package/dist/mjs/crypto/Crypto.d.ts +54 -0
  223. package/dist/mjs/crypto/Crypto.js +95 -0
  224. package/dist/mjs/crypto/index.d.ts +2 -0
  225. package/dist/mjs/crypto/index.js +3 -0
  226. package/dist/mjs/crypto/nodejs/AES.d.ts +24 -0
  227. package/dist/mjs/crypto/nodejs/AES.js +74 -0
  228. package/dist/mjs/crypto/nodejs/ARIA.d.ts +24 -0
  229. package/dist/mjs/crypto/nodejs/ARIA.js +73 -0
  230. package/dist/mjs/crypto/nodejs/ECIES.d.ts +6 -0
  231. package/dist/mjs/crypto/nodejs/ECIES.js +51 -0
  232. package/dist/mjs/crypto/nodejs/NativeCrypto.d.ts +58 -0
  233. package/dist/mjs/crypto/nodejs/NativeCrypto.js +163 -0
  234. package/dist/mjs/crypto/nodejs/RSA-Hybrid.d.ts +15 -0
  235. package/dist/mjs/crypto/nodejs/RSA-Hybrid.js +89 -0
  236. package/dist/mjs/index.d.ts +80 -0
  237. package/dist/mjs/index.js +76 -0
  238. package/dist/mjs/logger.d.ts +7 -0
  239. package/dist/mjs/logger.js +7 -0
  240. package/dist/mjs/models/EtlModel.d.ts +34 -0
  241. package/dist/mjs/models/EtlModel.js +96 -0
  242. package/dist/mjs/models/Offer.d.ts +130 -0
  243. package/dist/mjs/models/Offer.js +356 -0
  244. package/dist/mjs/models/Order.d.ts +148 -0
  245. package/dist/mjs/models/Order.js +538 -0
  246. package/dist/mjs/models/Provider.d.ts +51 -0
  247. package/dist/mjs/models/Provider.js +114 -0
  248. package/dist/mjs/models/TCB.d.ts +58 -0
  249. package/dist/mjs/models/TCB.js +107 -0
  250. package/dist/mjs/models/TeeOffer.d.ts +204 -0
  251. package/dist/mjs/models/TeeOffer.js +533 -0
  252. package/dist/mjs/models/index.d.ts +5 -0
  253. package/dist/mjs/models/index.js +6 -0
  254. package/dist/mjs/package.json +1 -0
  255. package/dist/mjs/polyfills.d.ts +0 -0
  256. package/dist/mjs/polyfills.js +7 -0
  257. package/dist/mjs/proto/Compression.d.ts +36 -0
  258. package/dist/mjs/proto/Compression.js +123 -0
  259. package/dist/mjs/proto/TRI.d.ts +124 -0
  260. package/dist/mjs/proto/TRI.js +284 -0
  261. package/dist/mjs/proto/TeeProperties.d.ts +263 -0
  262. package/dist/mjs/proto/TeeProperties.js +391 -0
  263. package/dist/mjs/providers/storage/ChunksDownloadDecorator.d.ts +36 -0
  264. package/dist/mjs/providers/storage/ChunksDownloadDecorator.js +139 -0
  265. package/dist/mjs/providers/storage/IStorageProvider.d.ts +15 -0
  266. package/dist/mjs/providers/storage/IStorageProvider.js +2 -0
  267. package/dist/mjs/providers/storage/S3StorageProvider.d.ts +25 -0
  268. package/dist/mjs/providers/storage/S3StorageProvider.js +167 -0
  269. package/dist/mjs/providers/storage/StorageAdapter.d.ts +60 -0
  270. package/dist/mjs/providers/storage/StorageAdapter.js +271 -0
  271. package/dist/mjs/providers/storage/StorageContentWriter.d.ts +46 -0
  272. package/dist/mjs/providers/storage/StorageContentWriter.js +161 -0
  273. package/dist/mjs/providers/storage/StorageKeyValueAdapter.d.ts +23 -0
  274. package/dist/mjs/providers/storage/StorageKeyValueAdapter.js +119 -0
  275. package/dist/mjs/providers/storage/StorageMetadataReader.d.ts +20 -0
  276. package/dist/mjs/providers/storage/StorageMetadataReader.js +51 -0
  277. package/dist/mjs/providers/storage/StorjAdapter.d.ts +19 -0
  278. package/dist/mjs/providers/storage/StorjAdapter.js +48 -0
  279. package/dist/mjs/providers/storage/StorjStorageProvider.d.ts +24 -0
  280. package/dist/mjs/providers/storage/StorjStorageProvider.js +139 -0
  281. package/dist/mjs/providers/storage/getStorageProvider.d.ts +4 -0
  282. package/dist/mjs/providers/storage/getStorageProvider.js +15 -0
  283. package/dist/mjs/providers/storage/types.d.ts +7 -0
  284. package/dist/mjs/providers/storage/types.js +2 -0
  285. package/dist/mjs/staticModels/ActiveOffers.d.ts +15 -0
  286. package/dist/mjs/staticModels/ActiveOffers.js +32 -0
  287. package/dist/mjs/staticModels/ActiveOrders.d.ts +20 -0
  288. package/dist/mjs/staticModels/ActiveOrders.js +71 -0
  289. package/dist/mjs/staticModels/Consensus.d.ts +42 -0
  290. package/dist/mjs/staticModels/Consensus.js +220 -0
  291. package/dist/mjs/staticModels/Deposits.d.ts +70 -0
  292. package/dist/mjs/staticModels/Deposits.js +190 -0
  293. package/dist/mjs/staticModels/Marks.d.ts +8 -0
  294. package/dist/mjs/staticModels/Marks.js +25 -0
  295. package/dist/mjs/staticModels/ModelPackager.d.ts +18 -0
  296. package/dist/mjs/staticModels/ModelPackager.js +45 -0
  297. package/dist/mjs/staticModels/Offers.d.ts +65 -0
  298. package/dist/mjs/staticModels/Offers.js +184 -0
  299. package/dist/mjs/staticModels/Orders.d.ts +155 -0
  300. package/dist/mjs/staticModels/Orders.js +499 -0
  301. package/dist/mjs/staticModels/ProviderRegistry.d.ts +74 -0
  302. package/dist/mjs/staticModels/ProviderRegistry.js +169 -0
  303. package/dist/mjs/staticModels/StaticModel.d.ts +8 -0
  304. package/dist/mjs/staticModels/StaticModel.js +30 -0
  305. package/dist/mjs/staticModels/Superpro.d.ts +16 -0
  306. package/dist/mjs/staticModels/Superpro.js +23 -0
  307. package/dist/mjs/staticModels/SuperproToken.d.ts +48 -0
  308. package/dist/mjs/staticModels/SuperproToken.js +136 -0
  309. package/dist/mjs/staticModels/TeeOffers.d.ts +115 -0
  310. package/dist/mjs/staticModels/TeeOffers.js +309 -0
  311. package/dist/mjs/store.d.ts +15 -0
  312. package/dist/mjs/store.js +15 -0
  313. package/dist/mjs/tee/QuoteParser.d.ts +27 -0
  314. package/dist/mjs/tee/QuoteParser.js +162 -0
  315. package/dist/mjs/tee/QuoteValidator.d.ts +38 -0
  316. package/dist/mjs/tee/QuoteValidator.js +384 -0
  317. package/dist/mjs/tee/errors.d.ts +6 -0
  318. package/dist/mjs/tee/errors.js +7 -0
  319. package/dist/mjs/tee/helpers.d.ts +14 -0
  320. package/dist/mjs/tee/helpers.js +115 -0
  321. package/dist/mjs/tee/interface.d.ts +63 -0
  322. package/dist/mjs/tee/interface.js +2 -0
  323. package/dist/mjs/tee/statuses.d.ts +21 -0
  324. package/dist/mjs/tee/statuses.js +25 -0
  325. package/dist/mjs/tee/types.d.ts +80 -0
  326. package/dist/mjs/tee/types.js +2 -0
  327. package/dist/mjs/types/Compressor.d.ts +5 -0
  328. package/dist/mjs/types/Compressor.js +2 -0
  329. package/dist/mjs/types/Consensus.d.ts +60 -0
  330. package/dist/mjs/types/Consensus.js +16 -0
  331. package/dist/mjs/types/DepositInfo.d.ts +6 -0
  332. package/dist/mjs/types/DepositInfo.js +2 -0
  333. package/dist/mjs/types/EtlModel.d.ts +2 -0
  334. package/dist/mjs/types/EtlModel.js +2 -0
  335. package/dist/mjs/types/Events.d.ts +34 -0
  336. package/dist/mjs/types/Events.js +2 -0
  337. package/dist/mjs/types/HardwareInfo.d.ts +6 -0
  338. package/dist/mjs/types/HardwareInfo.js +2 -0
  339. package/dist/mjs/types/Marks.d.ts +9 -0
  340. package/dist/mjs/types/Marks.js +7 -0
  341. package/dist/mjs/types/Offer.d.ts +33 -0
  342. package/dist/mjs/types/Offer.js +14 -0
  343. package/dist/mjs/types/OptionInfo.d.ts +8 -0
  344. package/dist/mjs/types/OptionInfo.js +2 -0
  345. package/dist/mjs/types/Order.d.ts +44 -0
  346. package/dist/mjs/types/Order.js +12 -0
  347. package/dist/mjs/types/OrderUsage.d.ts +26 -0
  348. package/dist/mjs/types/OrderUsage.js +2 -0
  349. package/dist/mjs/types/Origins.d.ts +6 -0
  350. package/dist/mjs/types/Origins.js +2 -0
  351. package/dist/mjs/types/Provider.d.ts +7 -0
  352. package/dist/mjs/types/Provider.js +2 -0
  353. package/dist/mjs/types/ResourceLoader.d.ts +28 -0
  354. package/dist/mjs/types/ResourceLoader.js +2 -0
  355. package/dist/mjs/types/SlotInfo.d.ts +6 -0
  356. package/dist/mjs/types/SlotInfo.js +2 -0
  357. package/dist/mjs/types/SlotUsage.d.ts +11 -0
  358. package/dist/mjs/types/SlotUsage.js +6 -0
  359. package/dist/mjs/types/Superpro.d.ts +9 -0
  360. package/dist/mjs/types/Superpro.js +11 -0
  361. package/dist/mjs/types/TeeOfferInfo.d.ts +10 -0
  362. package/dist/mjs/types/TeeOfferInfo.js +2 -0
  363. package/dist/mjs/types/TeeOfferOption.d.ts +13 -0
  364. package/dist/mjs/types/TeeOfferOption.js +2 -0
  365. package/dist/mjs/types/TeeOfferSlot.d.ts +8 -0
  366. package/dist/mjs/types/TeeOfferSlot.js +2 -0
  367. package/dist/mjs/types/ValueOfferSlot.d.ts +16 -0
  368. package/dist/mjs/types/ValueOfferSlot.js +2 -0
  369. package/dist/mjs/types/Web3.d.ts +62 -0
  370. package/dist/mjs/types/Web3.js +2 -0
  371. package/dist/mjs/types/blockchainConnector/StorageAccess.d.ts +8 -0
  372. package/dist/mjs/types/blockchainConnector/StorageAccess.js +2 -0
  373. package/dist/mjs/types/index.d.ts +22 -0
  374. package/dist/mjs/types/index.js +23 -0
  375. package/dist/mjs/types/storage/StorageAccess.d.ts +7 -0
  376. package/dist/mjs/types/storage/StorageAccess.js +2 -0
  377. package/dist/mjs/types/storage/StorageFileAccess.d.ts +5 -0
  378. package/dist/mjs/types/storage/StorageFileAccess.js +2 -0
  379. package/dist/mjs/types/storage/StorageObject.d.ts +8 -0
  380. package/dist/mjs/types/storage/StorageObject.js +2 -0
  381. package/dist/mjs/utils/Monitoring.d.ts +11 -0
  382. package/dist/mjs/utils/Monitoring.js +42 -0
  383. package/dist/mjs/utils/NonceTracker.d.ts +19 -0
  384. package/dist/mjs/utils/NonceTracker.js +73 -0
  385. package/dist/mjs/utils/PubSub.d.ts +9 -0
  386. package/dist/mjs/utils/PubSub.js +32 -0
  387. package/dist/mjs/utils/TxManager.d.ts +25 -0
  388. package/dist/mjs/utils/TxManager.js +162 -0
  389. package/dist/mjs/utils/compressors/GzipCompressor.d.ts +8 -0
  390. package/dist/mjs/utils/compressors/GzipCompressor.js +15 -0
  391. package/dist/mjs/utils/compressors/UncompressedCompressor.d.ts +8 -0
  392. package/dist/mjs/utils/compressors/UncompressedCompressor.js +13 -0
  393. package/dist/mjs/utils/compressors/index.d.ts +2 -0
  394. package/dist/mjs/utils/compressors/index.js +3 -0
  395. package/dist/mjs/utils/helper.d.ts +44 -0
  396. package/dist/mjs/utils/helper.js +258 -0
  397. package/dist/mjs/utils/helpers/getStreamChunks.d.ts +9 -0
  398. package/dist/mjs/utils/helpers/getStreamChunks.js +31 -0
  399. package/dist/mjs/utils/helpers/index.d.ts +1 -0
  400. package/dist/mjs/utils/helpers/index.js +2 -0
  401. package/dist/mjs/utils/helpers/tryWithInterval.d.ts +13 -0
  402. package/dist/mjs/utils/helpers/tryWithInterval.js +35 -0
  403. package/dist/mjs/utils/resourceLoaders/BaseResourceLoader.d.ts +10 -0
  404. package/dist/mjs/utils/resourceLoaders/BaseResourceLoader.js +10 -0
  405. package/dist/mjs/utils/resourceLoaders/StorageProviderLoader.d.ts +18 -0
  406. package/dist/mjs/utils/resourceLoaders/StorageProviderLoader.js +53 -0
  407. package/dist/mjs/utils/resourceLoaders/UrlResourceLoader.d.ts +9 -0
  408. package/dist/mjs/utils/resourceLoaders/UrlResourceLoader.js +44 -0
  409. package/dist/mjs/utils/resourceLoaders/getResourceLoader.d.ts +5 -0
  410. package/dist/mjs/utils/resourceLoaders/getResourceLoader.js +11 -0
  411. package/dist/mjs/utils/resourceLoaders/index.d.ts +1 -0
  412. package/dist/mjs/utils/resourceLoaders/index.js +2 -0
  413. package/package.json +16 -18
  414. package/build/TIIGenerator.js +0 -246
  415. package/build/analytics/Analytics.js +0 -74
  416. package/build/analytics/eventProviders/BrowserEventProvider.js +0 -32
  417. package/build/analytics/eventProviders/EventProvider.js +0 -14
  418. package/build/analytics/eventProviders/NodeEventProvider.js +0 -48
  419. package/build/analytics/transports/AxiosTransport.js +0 -72
  420. package/build/analytics/transports/FetchTransport.js +0 -42
  421. package/build/connectors/BaseConnector.js +0 -53
  422. package/build/connectors/BlockchainConnector.js +0 -358
  423. package/build/connectors/BlockchainEventsListener.js +0 -114
  424. package/build/crypto/Crypto.js +0 -119
  425. package/build/crypto/index.d.ts +0 -2
  426. package/build/crypto/nodejs/AES.js +0 -94
  427. package/build/crypto/nodejs/ARIA.js +0 -93
  428. package/build/crypto/nodejs/ECIES.js +0 -69
  429. package/build/crypto/nodejs/NativeCrypto.js +0 -183
  430. package/build/crypto/nodejs/RSA-Hybrid.js +0 -95
  431. package/build/index.d.ts +0 -79
  432. package/build/index.js +0 -142
  433. package/build/models/EtlModel.js +0 -138
  434. package/build/models/Offer.js +0 -407
  435. package/build/models/Order.js +0 -577
  436. package/build/models/Provider.js +0 -137
  437. package/build/models/TCB.js +0 -135
  438. package/build/models/TeeOffer.js +0 -600
  439. package/build/models/index.d.ts +0 -5
  440. package/build/models/index.js +0 -17
  441. package/build/polyfills.js +0 -7
  442. package/build/proto/Compression.js +0 -132
  443. package/build/proto/TRI.js +0 -293
  444. package/build/proto/TeeProperties.js +0 -401
  445. package/build/providers/storage/ChunksDownloadDecorator.js +0 -177
  446. package/build/providers/storage/S3StorageProvider.js +0 -219
  447. package/build/providers/storage/StorageAdapter.js +0 -323
  448. package/build/providers/storage/StorageContentWriter.js +0 -183
  449. package/build/providers/storage/StorageKeyValueAdapter.js +0 -158
  450. package/build/providers/storage/StorageMetadataReader.js +0 -68
  451. package/build/providers/storage/StorjAdapter.js +0 -74
  452. package/build/providers/storage/StorjStorageProvider.js +0 -207
  453. package/build/providers/storage/getStorageProvider.d.ts +0 -4
  454. package/build/providers/storage/getStorageProvider.js +0 -20
  455. package/build/staticModels/ActiveOffers.js +0 -52
  456. package/build/staticModels/ActiveOrders.js +0 -91
  457. package/build/staticModels/Consensus.js +0 -247
  458. package/build/staticModels/Deposits.js +0 -214
  459. package/build/staticModels/Marks.js +0 -43
  460. package/build/staticModels/ModelPackager.js +0 -62
  461. package/build/staticModels/Offers.js +0 -207
  462. package/build/staticModels/Orders.js +0 -518
  463. package/build/staticModels/ProviderRegistry.js +0 -192
  464. package/build/staticModels/StaticModel.js +0 -46
  465. package/build/staticModels/Superpro.js +0 -24
  466. package/build/staticModels/SuperproToken.js +0 -154
  467. package/build/staticModels/TeeOffers.js +0 -344
  468. package/build/store.js +0 -17
  469. package/build/tee/QuoteParser.js +0 -189
  470. package/build/tee/QuoteValidator.js +0 -414
  471. package/build/tee/helpers.js +0 -119
  472. package/build/types/HardwareInfo.d.ts +0 -6
  473. package/build/types/Offer.js +0 -17
  474. package/build/types/TeeOfferSlot.d.ts +0 -8
  475. package/build/types/index.d.ts +0 -22
  476. package/build/types/index.js +0 -39
  477. package/build/utils/Monitoring.js +0 -48
  478. package/build/utils/NonceTracker.js +0 -90
  479. package/build/utils/PubSub.js +0 -37
  480. package/build/utils/TxManager.js +0 -179
  481. package/build/utils/compressors/GzipCompressor.js +0 -29
  482. package/build/utils/compressors/UncompressedCompressor.js +0 -17
  483. package/build/utils/compressors/index.d.ts +0 -2
  484. package/build/utils/helper.js +0 -286
  485. package/build/utils/helpers/getStreamChunks.js +0 -74
  486. package/build/utils/helpers/index.d.ts +0 -1
  487. package/build/utils/helpers/tryWithInterval.js +0 -48
  488. package/build/utils/resourceLoaders/BaseResourceLoader.js +0 -51
  489. package/build/utils/resourceLoaders/StorageProviderLoader.js +0 -69
  490. package/build/utils/resourceLoaders/UrlResourceLoader.js +0 -64
  491. package/build/utils/resourceLoaders/getResourceLoader.js +0 -15
  492. package/build/utils/resourceLoaders/index.d.ts +0 -1
  493. /package/{build → dist/cjs}/analytics/AnalyticsError.d.ts +0 -0
  494. /package/{build → dist/cjs}/analytics/eventProviders/EventProvider.d.ts +0 -0
  495. /package/{build → dist/cjs}/config.d.ts +0 -0
  496. /package/{build → dist/cjs}/constants.d.ts +0 -0
  497. /package/{build → dist/cjs}/contracts/abi.d.ts +0 -0
  498. /package/{build → dist/cjs}/crypto/Crypto.d.ts +0 -0
  499. /package/{build → dist/cjs}/crypto/nodejs/AES.d.ts +0 -0
  500. /package/{build → dist/cjs}/crypto/nodejs/ARIA.d.ts +0 -0
  501. /package/{build → dist/cjs}/crypto/nodejs/ECIES.d.ts +0 -0
  502. /package/{build → dist/cjs}/crypto/nodejs/RSA-Hybrid.d.ts +0 -0
  503. /package/{build → dist/cjs}/logger.d.ts +0 -0
  504. /package/{build → dist/cjs}/polyfills.d.ts +0 -0
  505. /package/{build → dist/cjs}/providers/storage/types.d.ts +0 -0
  506. /package/{build → dist/cjs}/staticModels/ModelPackager.d.ts +0 -0
  507. /package/{build → dist/cjs}/store.d.ts +0 -0
  508. /package/{build → dist/cjs}/tee/errors.d.ts +0 -0
  509. /package/{build → dist/cjs}/tee/helpers.d.ts +0 -0
  510. /package/{build → dist/cjs}/tee/statuses.d.ts +0 -0
  511. /package/{build → dist/cjs}/types/Compressor.d.ts +0 -0
  512. /package/{build → dist/cjs}/types/EtlModel.d.ts +0 -0
  513. /package/{build → dist/cjs}/types/Marks.d.ts +0 -0
  514. /package/{build → dist/cjs}/types/OptionInfo.d.ts +0 -0
  515. /package/{build → dist/cjs}/types/Origins.d.ts +0 -0
  516. /package/{build → dist/cjs}/types/Provider.d.ts +0 -0
  517. /package/{build → dist/cjs}/types/SlotInfo.d.ts +0 -0
  518. /package/{build → dist/cjs}/types/Superpro.d.ts +0 -0
  519. /package/{build → dist/cjs}/types/Web3.d.ts +0 -0
  520. /package/{build → dist/cjs}/types/storage/StorageAccess.d.ts +0 -0
  521. /package/{build → dist/cjs}/types/storage/StorageObject.d.ts +0 -0
  522. /package/{build → dist/cjs}/utils/Monitoring.d.ts +0 -0
  523. /package/{build → dist/cjs}/utils/NonceTracker.d.ts +0 -0
  524. /package/{build → dist/cjs}/utils/PubSub.d.ts +0 -0
  525. /package/{build → dist/cjs}/utils/helpers/getStreamChunks.d.ts +0 -0
  526. /package/{build → dist/cjs}/utils/helpers/tryWithInterval.d.ts +0 -0
@@ -1,577 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- 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;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
12
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13
- return new (P || (P = Promise))(function (resolve, reject) {
14
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
15
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
16
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
17
- step((generator = generator.apply(thisArg, _arguments || [])).next());
18
- });
19
- };
20
- var __rest = (this && this.__rest) || function (s, e) {
21
- var t = {};
22
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
23
- t[p] = s[p];
24
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
25
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
26
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
27
- t[p[i]] = s[p[i]];
28
- }
29
- return t;
30
- };
31
- var __importDefault = (this && this.__importDefault) || function (mod) {
32
- return (mod && mod.__esModule) ? mod : { "default": mod };
33
- };
34
- Object.defineProperty(exports, "__esModule", { value: true });
35
- const types_1 = require("../types");
36
- const logger_1 = __importDefault(require("../logger"));
37
- const helper_1 = require("../utils/helper");
38
- const utils_1 = require("ethers/lib/utils");
39
- const connectors_1 = require("../connectors");
40
- const TeeOffers_1 = __importDefault(require("../staticModels/TeeOffers"));
41
- const TxManager_1 = __importDefault(require("../utils/TxManager"));
42
- const helpers_1 = require("../utils/helpers");
43
- const constants_1 = require("../constants");
44
- class Order {
45
- constructor(orderId) {
46
- this.id = orderId;
47
- if (!Order.contract) {
48
- Order.contract = connectors_1.BlockchainConnector.getInstance().getContract();
49
- }
50
- this.logger = logger_1.default.child({ className: 'Order', orderId: this.id });
51
- }
52
- /**
53
- * Check if order exist
54
- */
55
- isExist() {
56
- return Order.contract.methods.isOrderValid(this.id).call();
57
- }
58
- /**
59
- * Check if order is in `processing` state
60
- */
61
- isOrderProcessing() {
62
- return Order.contract.methods.isOrderProcessing(this.id).call();
63
- }
64
- /**
65
- * Function for fetching avaliable for unlock order profit.
66
- */
67
- isOrderProfitAvailable() {
68
- return __awaiter(this, void 0, void 0, function* () {
69
- const parsedResponse = yield Order.contract.methods
70
- .isOrderProfitAvailable(this.id)
71
- .call()
72
- .then((response) => (0, helper_1.cleanWeb3Data)(response));
73
- return parsedResponse.profit;
74
- });
75
- }
76
- /**
77
- * Function for fetching order price
78
- */
79
- calculateCurrentPrice() {
80
- return Order.contract.methods
81
- .calculateOrderCurrentPrice(this.id)
82
- .call()
83
- .then((price) => price.toString());
84
- }
85
- /**
86
- * Function for fetching order info from blockchain
87
- */
88
- getOrderInfo() {
89
- return __awaiter(this, void 0, void 0, function* () {
90
- if (!(yield this.checkIfOrderExistsWithInterval())) {
91
- throw Error(`Order ${this.id} does not exist`);
92
- }
93
- const orderInfoParams = yield Order.contract.methods.getOrder(this.id).call();
94
- const orderArgs = yield Order.contract.methods.getOrderArgs(this.id).call();
95
- const orderInfo = Object.assign(Object.assign({}, (0, helper_1.cleanWeb3Data)(orderInfoParams[1])), { args: (0, helper_1.cleanWeb3Data)(orderArgs), status: orderInfoParams[1].status.toString() });
96
- return (this.orderInfo = orderInfo);
97
- });
98
- }
99
- checkIfOrderExistsWithInterval() {
100
- return __awaiter(this, void 0, void 0, function* () {
101
- const offerExists = yield (0, helpers_1.tryWithInterval)({
102
- handler: () => this.isExist(),
103
- checkResult: (exists) => {
104
- if (!exists)
105
- this.logger.debug(`Order ${this.id} exists: ${exists}`);
106
- return { isResultOk: exists };
107
- },
108
- retryInterval: constants_1.BLOCKCHAIN_CALL_RETRY_INTERVAL,
109
- retryMax: constants_1.BLOCKCHAIN_CALL_RETRY_ATTEMPTS,
110
- });
111
- return offerExists;
112
- });
113
- }
114
- getConsumer() {
115
- return __awaiter(this, void 0, void 0, function* () {
116
- const consumer = yield Order.contract.methods.getOrder(this.id).call();
117
- this.consumer = consumer[0];
118
- return this.consumer;
119
- });
120
- }
121
- /**
122
- * Function for fetching order result from blockchain
123
- */
124
- getOrderResult() {
125
- return __awaiter(this, void 0, void 0, function* () {
126
- const orderResults = yield Order.contract.methods.getOrder(this.id).call();
127
- return (this.orderResult = (0, helper_1.cleanWeb3Data)(orderResults[2]));
128
- });
129
- }
130
- /**
131
- * Function for fetching sub orders from blockchain
132
- */
133
- getSubOrders() {
134
- return __awaiter(this, void 0, void 0, function* () {
135
- this.subOrders = yield Order.contract.methods
136
- .getOrderSubOrders(this.id)
137
- .call()
138
- .then((ids) => ids.map((id) => id.toString()));
139
- return this.subOrders;
140
- });
141
- }
142
- /**
143
- * Function for fetching parent order from blockchain
144
- */
145
- getParentOrder() {
146
- return __awaiter(this, void 0, void 0, function* () {
147
- this.parentOrder = yield Order.contract.methods
148
- .getOrderParentOrder(this.id)
149
- .call()
150
- .then((id) => id.toString());
151
- return this.parentOrder;
152
- });
153
- }
154
- /**
155
- * Function for fetching order options deposit spent from blockchain
156
- */
157
- getOptionsDepositSpent() {
158
- return Order.contract.methods
159
- .getOptionsDepositSpent(this.id)
160
- .call()
161
- .then((price) => price.toString());
162
- }
163
- /**
164
- * Function for fetching order deposit spent from blockchain
165
- */
166
- getSelectedUsage() {
167
- return __awaiter(this, void 0, void 0, function* () {
168
- const coresDenominator = yield TeeOffers_1.default.getDenominator();
169
- const selectedUsageSlotInfo = yield Order.contract.methods
170
- .getOrderSelectedUsageSlotInfo(this.id)
171
- .call()
172
- .then((slotInfo) => (0, helper_1.cleanWeb3Data)(slotInfo));
173
- const selectedUsageSlotUsage = yield Order.contract.methods
174
- .getOrderSelectedUsageSlotUsage(this.id)
175
- .call()
176
- .then((slotUsage) => (0, helper_1.cleanWeb3Data)(slotUsage));
177
- this.selectedUsage = yield Order.contract.methods
178
- .getOrderSelectedUsage(this.id)
179
- .call()
180
- .then((selectedUsage) => (0, helper_1.convertOrderUsage)((0, helper_1.cleanWeb3Data)(selectedUsage), (0, helper_1.unpackSlotInfo)(selectedUsageSlotInfo, coresDenominator), (0, helper_1.formatUsage)(selectedUsageSlotUsage)));
181
- this.selectedUsage.optionsCount = this.selectedUsage.optionsCount.map((item) => Number(item));
182
- this.selectedUsage.optionUsage = this.selectedUsage.optionUsage.map((usage) => (0, helper_1.formatUsage)(usage));
183
- return this.selectedUsage;
184
- });
185
- }
186
- /**
187
- * Function for fetching hold deposits sum of the order and its suborders
188
- */
189
- calculateTotalOrderDeposit() {
190
- return Order.contract.methods
191
- .calculateTotalOrderDeposit(this.id)
192
- .call()
193
- .then((price) => price.toString());
194
- }
195
- /**
196
- * Function for fetching reserve for output order
197
- */
198
- calculateOrderOutputReserve() {
199
- return Order.contract.methods
200
- .calculateOrderOutputReserve(this.id)
201
- .call()
202
- .then((price) => price.toString());
203
- }
204
- /**
205
- * Function for fetching spent deposits sum of the order and its suborders
206
- */
207
- calculateTotalDepositSpent() {
208
- return Order.contract.methods
209
- .calculateTotalDepositSpent(this.id)
210
- .call()
211
- .then((price) => price.toString());
212
- }
213
- /**
214
- * Function for fetching unspent deposits sum of the order and its suborders
215
- */
216
- calculateTotalDepositUnspent() {
217
- return Order.contract.methods
218
- .calculateTotalDepositUnspent(this.id)
219
- .call()
220
- .then((price) => price.toString());
221
- }
222
- /**
223
- * Fetch new Origins (createdDate, createdBy, modifiedDate and modifiedBy)
224
- */
225
- getOrigins() {
226
- return __awaiter(this, void 0, void 0, function* () {
227
- const origins = yield Order.contract.methods
228
- .getOrderOrigins(this.id)
229
- .call()
230
- .then((origins) => (0, helper_1.cleanWeb3Data)(origins));
231
- // Convert blockchain time seconds to js time milliseconds
232
- origins.createdDate = Number(origins.createdDate) * 1000;
233
- origins.modifiedDate = Number(origins.modifiedDate) * 1000;
234
- return (this.origins = origins);
235
- });
236
- }
237
- /**
238
- * Function for fetching parent order from blockchain
239
- */
240
- getAwaitingPayment() {
241
- return Order.contract.methods.getAwaitingPayment(this.id).call();
242
- }
243
- /**
244
- * Function for fetching deposit of order from blockchain
245
- */
246
- getDeposit() {
247
- return Order.contract.methods
248
- .getOrderDeposit(this.id)
249
- .call()
250
- .then((price) => price.toString());
251
- }
252
- /**
253
- * Function for fetching start of processing date
254
- */
255
- getStartDate() {
256
- return __awaiter(this, void 0, void 0, function* () {
257
- return Number(yield Order.contract.methods.getStartDate(this.id).call());
258
- });
259
- }
260
- /**
261
- * Function for fetching start of processing date
262
- */
263
- calculateOrderTime() {
264
- return __awaiter(this, void 0, void 0, function* () {
265
- return Number(yield Order.contract.methods.calculateOrderTime(this.id).call());
266
- });
267
- }
268
- /**
269
- * Function for fetching parent order from blockchain
270
- */
271
- setAwaitingPayment(value, transactionOptions) {
272
- return __awaiter(this, void 0, void 0, function* () {
273
- (0, helper_1.checkIfActionAccountInitialized)(transactionOptions);
274
- yield TxManager_1.default.execute(Order.contract.methods.setAwaitingPayment(this.id, value), transactionOptions);
275
- });
276
- }
277
- /**
278
- * Sets options deposit spent
279
- */
280
- setOptionsDepositSpent(value, transactionOptions) {
281
- return __awaiter(this, void 0, void 0, function* () {
282
- (0, helper_1.checkIfActionAccountInitialized)(transactionOptions);
283
- yield TxManager_1.default.execute(Order.contract.methods.setOptionsDepositSpent(this.id, value), transactionOptions);
284
- });
285
- }
286
- /**
287
- * Function for updating status of contract
288
- */
289
- updateStatus(status, transactionOptions) {
290
- return __awaiter(this, void 0, void 0, function* () {
291
- (0, helper_1.checkIfActionAccountInitialized)(transactionOptions);
292
- if (status === types_1.OrderStatus.Processing) {
293
- yield TxManager_1.default.execute(Order.contract.methods.processOrder(this.id), transactionOptions);
294
- }
295
- if (this.orderInfo)
296
- this.orderInfo.status = status;
297
- });
298
- }
299
- /**
300
- * Function for updating status of contract
301
- */
302
- cancelOrder(transactionOptions) {
303
- return __awaiter(this, void 0, void 0, function* () {
304
- (0, helper_1.checkIfActionAccountInitialized)(transactionOptions);
305
- yield TxManager_1.default.execute(Order.contract.methods.cancelOrder(this.id), transactionOptions);
306
- });
307
- }
308
- /**
309
- * Starts suspended order
310
- */
311
- start(transactionOptions) {
312
- return __awaiter(this, void 0, void 0, function* () {
313
- (0, helper_1.checkIfActionAccountInitialized)(transactionOptions);
314
- yield TxManager_1.default.execute(Order.contract.methods.startOrder(this.id), transactionOptions);
315
- });
316
- }
317
- /**
318
- * Updates order result
319
- */
320
- updateOrderResult(encryptedResult = '', transactionOptions) {
321
- return __awaiter(this, void 0, void 0, function* () {
322
- (0, helper_1.checkIfActionAccountInitialized)(transactionOptions);
323
- yield TxManager_1.default.execute(Order.contract.methods.updateOrderResult(this.id, encryptedResult), transactionOptions);
324
- });
325
- }
326
- /**
327
- * Completes order
328
- */
329
- complete(status, encryptedResult = '', transactionOptions) {
330
- return __awaiter(this, void 0, void 0, function* () {
331
- (0, helper_1.checkIfActionAccountInitialized)(transactionOptions);
332
- yield TxManager_1.default.execute(Order.contract.methods.completeOrder(this.id, status, encryptedResult), transactionOptions);
333
- });
334
- }
335
- /**
336
- * Unlocks profit
337
- */
338
- unlockProfit(transactionOptions) {
339
- return __awaiter(this, void 0, void 0, function* () {
340
- (0, helper_1.checkIfActionAccountInitialized)(transactionOptions);
341
- yield TxManager_1.default.execute(Order.contract.methods.unlockProfit(this.id), transactionOptions);
342
- });
343
- }
344
- /**
345
- * Function for creating sub orders for current order
346
- * @param subOrderInfo - order info for new subOrder
347
- * @param blockParentOrder - is sub order blocking
348
- * @param transactionOptions - object what contains alternative action account or gas limit (optional)
349
- * @returns Promise<void> - Does not return id of created sub order!
350
- */
351
- createSubOrder(subOrderInfo, slots, blockParentOrder, deposit, transactionOptions, checkTxBeforeSend = false) {
352
- var _a, _b, _c, _d;
353
- return __awaiter(this, void 0, void 0, function* () {
354
- (0, helper_1.checkIfActionAccountInitialized)(transactionOptions);
355
- deposit = deposit !== null && deposit !== void 0 ? deposit : '0';
356
- const preparedInfo = Object.assign(Object.assign({}, subOrderInfo), { externalId: (0, utils_1.formatBytes32String)(subOrderInfo.externalId) });
357
- const params = {
358
- blockParentOrder,
359
- deposit,
360
- };
361
- const { args } = preparedInfo, restPreparedInfo = __rest(preparedInfo, ["args"]);
362
- if (checkTxBeforeSend) {
363
- yield TxManager_1.default.dryRun(Order.contract.methods.createSubOrder(this.id, Object.assign(Object.assign({}, restPreparedInfo), { expectedPrice: (_a = restPreparedInfo.expectedPrice) !== null && _a !== void 0 ? _a : '0', maxPriceSlippage: (_b = restPreparedInfo.maxPriceSlippage) !== null && _b !== void 0 ? _b : '0' }), slots, args, params), transactionOptions);
364
- }
365
- yield TxManager_1.default.execute(Order.contract.methods.createSubOrder(this.id, Object.assign(Object.assign({}, restPreparedInfo), { expectedPrice: (_c = restPreparedInfo.expectedPrice) !== null && _c !== void 0 ? _c : '0', maxPriceSlippage: (_d = restPreparedInfo.maxPriceSlippage) !== null && _d !== void 0 ? _d : '0' }), slots, args, params), transactionOptions);
366
- });
367
- }
368
- /**
369
- * Function for creating pack of sub orders (wokflow) for current order
370
- * @param subOrdersInfo - orders info for new subOrders
371
- * @param transactionOptions - object what contains action account and web3 instance
372
- * @returns {Promise<string[]>} - tx hashes
373
- */
374
- createSubOrders(subOrdersInfo, subOrdersSlots, transactionOptions) {
375
- var _a, _b;
376
- return __awaiter(this, void 0, void 0, function* () {
377
- (0, helper_1.checkIfActionAccountInitialized)(transactionOptions);
378
- if (subOrdersInfo.length !== subOrdersSlots.length) {
379
- throw Error('SDK: Invalid arguments, subOrdersSlots should be the same size as subOrdersInfo.');
380
- }
381
- const promises = [];
382
- for (let orderInfoIndex = 0; orderInfoIndex < subOrdersInfo.length; orderInfoIndex++) {
383
- const preparedInfo = Object.assign(Object.assign({}, subOrdersInfo[orderInfoIndex]), { externalId: (0, utils_1.formatBytes32String)(subOrdersInfo[orderInfoIndex].externalId), expectedPrice: (_a = subOrdersInfo[orderInfoIndex].expectedPrice) !== null && _a !== void 0 ? _a : '0', maxPriceSlippage: (_b = subOrdersInfo[orderInfoIndex].maxPriceSlippage) !== null && _b !== void 0 ? _b : '0' });
384
- const params = {
385
- blockParentOrder: subOrdersInfo[orderInfoIndex].blocking,
386
- deposit: subOrdersInfo[orderInfoIndex].deposit,
387
- };
388
- const transactionCall = Order.contract.methods.createSubOrder(this.id, preparedInfo, subOrdersSlots[orderInfoIndex], preparedInfo.args, params);
389
- promises.push(TxManager_1.default.execute(transactionCall, transactionOptions));
390
- }
391
- return (yield Promise.all(promises)).map((tx) => tx.transactionHash);
392
- });
393
- }
394
- /**
395
- * Function for adding event listeners to contract events
396
- * @param callback - function for processing each order related with event
397
- * @returns unsubscribe - function unsubscribing from event
398
- */
399
- onStatusUpdated(callback) {
400
- const logger = this.logger.child({ method: 'onOrderStatusUpdated' });
401
- // TODO: add ability to use this event without https provider initialization
402
- const contractWss = connectors_1.BlockchainEventsListener.getInstance().getContract();
403
- const subscription = contractWss.events.OrderStatusUpdated();
404
- subscription.on('data', (event) => {
405
- var _a;
406
- if (event.returnValues.orderId != this.id) {
407
- return;
408
- }
409
- const newStatus = (_a = event.returnValues.status) === null || _a === void 0 ? void 0 : _a.toString();
410
- if (this.orderInfo)
411
- this.orderInfo.status = newStatus;
412
- callback(newStatus);
413
- });
414
- subscription.on('error', (error) => {
415
- logger.warn(error);
416
- });
417
- return () => subscription.unsubscribe();
418
- }
419
- }
420
- __decorate([
421
- (0, helper_1.incrementMethodCall)(),
422
- __metadata("design:type", Function),
423
- __metadata("design:paramtypes", []),
424
- __metadata("design:returntype", Promise)
425
- ], Order.prototype, "getOrderInfo", null);
426
- __decorate([
427
- (0, helper_1.incrementMethodCall)(),
428
- __metadata("design:type", Function),
429
- __metadata("design:paramtypes", []),
430
- __metadata("design:returntype", Promise)
431
- ], Order.prototype, "getConsumer", null);
432
- __decorate([
433
- (0, helper_1.incrementMethodCall)(),
434
- __metadata("design:type", Function),
435
- __metadata("design:paramtypes", []),
436
- __metadata("design:returntype", Promise)
437
- ], Order.prototype, "getOrderResult", null);
438
- __decorate([
439
- (0, helper_1.incrementMethodCall)(),
440
- __metadata("design:type", Function),
441
- __metadata("design:paramtypes", []),
442
- __metadata("design:returntype", Promise)
443
- ], Order.prototype, "getSubOrders", null);
444
- __decorate([
445
- (0, helper_1.incrementMethodCall)(),
446
- __metadata("design:type", Function),
447
- __metadata("design:paramtypes", []),
448
- __metadata("design:returntype", Promise)
449
- ], Order.prototype, "getParentOrder", null);
450
- __decorate([
451
- (0, helper_1.incrementMethodCall)(),
452
- __metadata("design:type", Function),
453
- __metadata("design:paramtypes", []),
454
- __metadata("design:returntype", Promise)
455
- ], Order.prototype, "getOptionsDepositSpent", null);
456
- __decorate([
457
- (0, helper_1.incrementMethodCall)(),
458
- __metadata("design:type", Function),
459
- __metadata("design:paramtypes", []),
460
- __metadata("design:returntype", Promise)
461
- ], Order.prototype, "getSelectedUsage", null);
462
- __decorate([
463
- (0, helper_1.incrementMethodCall)(),
464
- __metadata("design:type", Function),
465
- __metadata("design:paramtypes", []),
466
- __metadata("design:returntype", Promise)
467
- ], Order.prototype, "calculateTotalOrderDeposit", null);
468
- __decorate([
469
- (0, helper_1.incrementMethodCall)(),
470
- __metadata("design:type", Function),
471
- __metadata("design:paramtypes", []),
472
- __metadata("design:returntype", Promise)
473
- ], Order.prototype, "calculateOrderOutputReserve", null);
474
- __decorate([
475
- (0, helper_1.incrementMethodCall)(),
476
- __metadata("design:type", Function),
477
- __metadata("design:paramtypes", []),
478
- __metadata("design:returntype", Promise)
479
- ], Order.prototype, "calculateTotalDepositSpent", null);
480
- __decorate([
481
- (0, helper_1.incrementMethodCall)(),
482
- __metadata("design:type", Function),
483
- __metadata("design:paramtypes", []),
484
- __metadata("design:returntype", Promise)
485
- ], Order.prototype, "calculateTotalDepositUnspent", null);
486
- __decorate([
487
- (0, helper_1.incrementMethodCall)(),
488
- __metadata("design:type", Function),
489
- __metadata("design:paramtypes", []),
490
- __metadata("design:returntype", Promise)
491
- ], Order.prototype, "getOrigins", null);
492
- __decorate([
493
- (0, helper_1.incrementMethodCall)(),
494
- __metadata("design:type", Function),
495
- __metadata("design:paramtypes", []),
496
- __metadata("design:returntype", Promise)
497
- ], Order.prototype, "getAwaitingPayment", null);
498
- __decorate([
499
- (0, helper_1.incrementMethodCall)(),
500
- __metadata("design:type", Function),
501
- __metadata("design:paramtypes", []),
502
- __metadata("design:returntype", Promise)
503
- ], Order.prototype, "getDeposit", null);
504
- __decorate([
505
- (0, helper_1.incrementMethodCall)(),
506
- __metadata("design:type", Function),
507
- __metadata("design:paramtypes", []),
508
- __metadata("design:returntype", Promise)
509
- ], Order.prototype, "getStartDate", null);
510
- __decorate([
511
- (0, helper_1.incrementMethodCall)(),
512
- __metadata("design:type", Function),
513
- __metadata("design:paramtypes", []),
514
- __metadata("design:returntype", Promise)
515
- ], Order.prototype, "calculateOrderTime", null);
516
- __decorate([
517
- (0, helper_1.incrementMethodCall)(),
518
- __metadata("design:type", Function),
519
- __metadata("design:paramtypes", [Boolean, Object]),
520
- __metadata("design:returntype", Promise)
521
- ], Order.prototype, "setAwaitingPayment", null);
522
- __decorate([
523
- (0, helper_1.incrementMethodCall)(),
524
- __metadata("design:type", Function),
525
- __metadata("design:paramtypes", [String, Object]),
526
- __metadata("design:returntype", Promise)
527
- ], Order.prototype, "setOptionsDepositSpent", null);
528
- __decorate([
529
- (0, helper_1.incrementMethodCall)(),
530
- __metadata("design:type", Function),
531
- __metadata("design:paramtypes", [String, Object]),
532
- __metadata("design:returntype", Promise)
533
- ], Order.prototype, "updateStatus", null);
534
- __decorate([
535
- (0, helper_1.incrementMethodCall)(),
536
- __metadata("design:type", Function),
537
- __metadata("design:paramtypes", [Object]),
538
- __metadata("design:returntype", Promise)
539
- ], Order.prototype, "cancelOrder", null);
540
- __decorate([
541
- (0, helper_1.incrementMethodCall)(),
542
- __metadata("design:type", Function),
543
- __metadata("design:paramtypes", [Object]),
544
- __metadata("design:returntype", Promise)
545
- ], Order.prototype, "start", null);
546
- __decorate([
547
- (0, helper_1.incrementMethodCall)(),
548
- __metadata("design:type", Function),
549
- __metadata("design:paramtypes", [Object, Object]),
550
- __metadata("design:returntype", Promise)
551
- ], Order.prototype, "updateOrderResult", null);
552
- __decorate([
553
- (0, helper_1.incrementMethodCall)(),
554
- __metadata("design:type", Function),
555
- __metadata("design:paramtypes", [String, Object, Object]),
556
- __metadata("design:returntype", Promise)
557
- ], Order.prototype, "complete", null);
558
- __decorate([
559
- (0, helper_1.incrementMethodCall)(),
560
- __metadata("design:type", Function),
561
- __metadata("design:paramtypes", [Object]),
562
- __metadata("design:returntype", Promise)
563
- ], Order.prototype, "unlockProfit", null);
564
- __decorate([
565
- (0, helper_1.incrementMethodCall)(),
566
- __metadata("design:type", Function),
567
- __metadata("design:paramtypes", [Object, Object, Boolean, String, Object, Object]),
568
- __metadata("design:returntype", Promise)
569
- ], Order.prototype, "createSubOrder", null);
570
- __decorate([
571
- (0, helper_1.incrementMethodCall)(),
572
- __metadata("design:type", Function),
573
- __metadata("design:paramtypes", [Array, Array, Object]),
574
- __metadata("design:returntype", Promise)
575
- ], Order.prototype, "createSubOrders", null);
576
- exports.default = Order;
577
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kZWxzL09yZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQ0FnQmtCO0FBR2xCLHVEQUFtQztBQUVuQyw0Q0FPeUI7QUFDekIsNENBQXVEO0FBQ3ZELDhDQUE4RTtBQUM5RSwwRUFBa0Q7QUFDbEQsbUVBQTJDO0FBQzNDLDhDQUFtRDtBQUNuRCw0Q0FBOEY7QUFFOUYsTUFBTSxLQUFLO0lBY1QsWUFBWSxPQUFxQjtRQUMvQixJQUFJLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNuQixLQUFLLENBQUMsUUFBUSxHQUFHLGdDQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ2xFO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxnQkFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksaUJBQWlCO1FBQ3RCLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7T0FFRztJQUNVLHNCQUFzQjs7WUFDakMsTUFBTSxjQUFjLEdBQUcsTUFBTSxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU87aUJBQ2hELHNCQUFzQixD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