@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,416 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.QuoteValidator = void 0;
16
- const axios_1 = __importDefault(require("axios"));
17
- const elliptic_1 = __importDefault(require("elliptic"));
18
- const node_forge_1 = __importDefault(require("node-forge"));
19
- const x509_1 = require("@fidm/x509");
20
- const js_encoding_utils_1 = require("js-encoding-utils");
21
- const pkijs_1 = require("pkijs");
22
- const asn1js_1 = require("asn1js");
23
- const lodash_1 = __importDefault(require("lodash"));
24
- const QuoteParser_js_1 = require("./QuoteParser.js");
25
- const logger_js_1 = __importDefault(require("../logger.js"));
26
- const errors_js_1 = require("./errors.js");
27
- const statuses_js_1 = require("./statuses.js");
28
- const dto_js_1 = require("@super-protocol/dto-js");
29
- const index_js_1 = __importDefault(require("../crypto/index.js"));
30
- const { ec } = elliptic_1.default;
31
- const { util, asn1 } = node_forge_1.default;
32
- const INTEL_BASE_SGX_URL = 'https://api.trustedservices.intel.com';
33
- const INTEL_SGX_ROOT_CA_URL = 'https://certificates.trustedservices.intel.com/IntelSGXRootCA.der';
34
- const SGX_OID = '1.2.840.113741.1.13.1';
35
- const FMSPC_OID = `${SGX_OID}.4`;
36
- const PCEID_OID = `${SGX_OID}.3`;
37
- const TCB_OID = `${SGX_OID}.2`;
38
- const PCESVN_OID = `${TCB_OID}.17`;
39
- const INTEL_ROOT_PUB_KEY = new Uint8Array([
40
- 4, 11, 169, 196, 192, 192, 200, 97, 147, 163, 254, 35, 214, 176, 44, 218, 16, 168, 187, 212, 232,
41
- 142, 72, 180, 69, 133, 97, 163, 110, 112, 85, 37, 245, 103, 145, 142, 46, 220, 136, 228, 13, 134,
42
- 11, 208, 204, 78, 226, 106, 172, 201, 136, 229, 5, 169, 83, 85, 140, 69, 63, 107, 9, 4, 174, 115,
43
- 148,
44
- ]);
45
- class QuoteValidator {
46
- constructor(baseUrl) {
47
- this.isDefault = baseUrl === INTEL_BASE_SGX_URL;
48
- this.baseUrl = `${baseUrl}/sgx/certification/v4`;
49
- this.teeSgxParser = new QuoteParser_js_1.TeeSgxParser();
50
- this.logger = logger_js_1.default.child({ className: QuoteValidator.name });
51
- }
52
- splitChain(chain) {
53
- const begin = '-----BEGIN CERTIFICATE-----';
54
- const end = '-----END CERTIFICATE-----';
55
- return chain
56
- .split(begin)
57
- .filter(Boolean)
58
- .map((cert) => begin.concat(cert.slice(0, cert.indexOf(end)), end));
59
- }
60
- findSequenceByOID(hexValue, targetOID) {
61
- const buffer = util.hexToBytes(hexValue);
62
- const asn1Data = asn1.fromDer(buffer);
63
- return this.searchForSequence(asn1Data, targetOID);
64
- }
65
- searchForSequence(asn1Data, targetOID) {
66
- if (asn1Data.type === asn1.Type.SEQUENCE) {
67
- for (const child of asn1Data.value) {
68
- if (child.type === asn1.Type.OID) {
69
- const oid = asn1.derToOid(child.value);
70
- if (oid === targetOID) {
71
- return asn1Data;
72
- }
73
- }
74
- }
75
- }
76
- if (Array.isArray(asn1Data.value)) {
77
- for (const child of asn1Data.value) {
78
- const result = this.searchForSequence(child, targetOID);
79
- if (result) {
80
- return result;
81
- }
82
- }
83
- }
84
- return null;
85
- }
86
- verifyDataBySignature(data, signature, key) {
87
- const ellipticEc = new ec('p256');
88
- const result = ellipticEc.verify(data, {
89
- r: signature.subarray(0, 32),
90
- s: signature.subarray(32),
91
- }, ellipticEc.keyFromPublic(key, 'hex'));
92
- return result;
93
- }
94
- checkValidDate(from, to) {
95
- const now = Date.now();
96
- return from < now && now < to;
97
- }
98
- checkChainForIssuers(pckCert, platformCert, rootCert) {
99
- return (lodash_1.default.isEqual(pckCert.issuer, platformCert.subject) &&
100
- lodash_1.default.isEqual(platformCert.issuer, rootCert.subject));
101
- }
102
- getCrl(crlData) {
103
- const crlDer = crlData.startsWith('-----')
104
- ? js_encoding_utils_1.formatter.pemToBin(crlData)
105
- : Buffer.from(crlData, 'hex');
106
- const crlAsn = (0, asn1js_1.fromBER)(crlDer);
107
- return new pkijs_1.CertificateRevocationList({ schema: crlAsn.result });
108
- }
109
- checkCertificatesInCrl(crl, certIds) {
110
- if (!crl.thisUpdate || !crl.nextUpdate) {
111
- throw new errors_js_1.TeeQuoteValidatorError('Certificate revocation list has no update date field');
112
- }
113
- if (!this.checkValidDate(crl.thisUpdate.value.valueOf(), crl.nextUpdate.value.valueOf())) {
114
- throw new errors_js_1.TeeQuoteValidatorError('Certificate revocation list has invalid update date');
115
- }
116
- if (crl.revokedCertificates) {
117
- const isAnyRevoked = crl.revokedCertificates.find((revoked) => certIds.includes(Buffer.from(revoked.userCertificate.valueBlock.valueHexView).toString('hex')));
118
- if (isAnyRevoked) {
119
- throw new errors_js_1.TeeQuoteValidatorError('Certificate in revokation list');
120
- }
121
- }
122
- }
123
- getCertificates(quote) {
124
- return __awaiter(this, void 0, void 0, function* () {
125
- const platformCrlResult = yield axios_1.default.get(`${this.baseUrl}/pckcrl?ca=platform&encoding=pem`);
126
- const platformChain = decodeURIComponent(platformCrlResult.headers['sgx-pck-crl-issuer-chain']);
127
- const [platformFetchedPem, rootFetchedPem] = this.splitChain(platformChain); // [platform, root]
128
- const platformFetchedCert = x509_1.Certificate.fromPEM(Buffer.from(platformFetchedPem));
129
- const rootFetchedCert = x509_1.Certificate.fromPEM(Buffer.from(rootFetchedPem));
130
- if (!this.checkValidDate(platformFetchedCert.validFrom.valueOf(), platformFetchedCert.validTo.valueOf())) {
131
- throw new errors_js_1.TeeQuoteValidatorError('Platform certificate validation date is not valid');
132
- }
133
- if (!this.checkValidDate(rootFetchedCert.validFrom.valueOf(), rootFetchedCert.validTo.valueOf())) {
134
- throw new errors_js_1.TeeQuoteValidatorError('Root certificate validation date is not valid');
135
- }
136
- if (!lodash_1.default.isEqual(rootFetchedCert.issuer, rootFetchedCert.subject)) {
137
- throw new errors_js_1.TeeQuoteValidatorError('Root certificate is not self-signed');
138
- }
139
- if (Buffer.compare(rootFetchedCert.publicKey.keyRaw, INTEL_ROOT_PUB_KEY) !== 0) {
140
- throw new errors_js_1.TeeQuoteValidatorError('Wrong Intel root certificate public key');
141
- }
142
- const certificatePems = this.splitChain(quote.qeCertificationData.toString()); // [pck, platform, root]
143
- const pckCert = x509_1.Certificate.fromPEM(Buffer.from(certificatePems[0]));
144
- const certType = quote.qeCertificationDataType;
145
- if (!this.checkValidDate(pckCert.validFrom.valueOf(), pckCert.validTo.valueOf())) {
146
- throw new errors_js_1.TeeQuoteValidatorError('PCK certificate validation date is not valid');
147
- }
148
- if (certType !== 5) {
149
- throw new errors_js_1.TeeQuoteValidatorError(`Unsupported certification data type: ${certType}`);
150
- }
151
- if (rootFetchedPem !== certificatePems[2]) {
152
- throw new errors_js_1.TeeQuoteValidatorError("Invalid SGX root certificate in quote's certificate chain");
153
- }
154
- if (!this.checkChainForIssuers(pckCert, platformFetchedCert, rootFetchedCert)) {
155
- throw new errors_js_1.TeeQuoteValidatorError('Invalid issuers in certificates chain');
156
- }
157
- const certIds = [
158
- rootFetchedCert.serialNumber,
159
- platformFetchedCert.serialNumber,
160
- pckCert.serialNumber,
161
- ];
162
- if (this.isDefault) {
163
- const intelCrlDer = yield axios_1.default.get(INTEL_SGX_ROOT_CA_URL, {
164
- responseType: 'arraybuffer',
165
- });
166
- const intelCrlAsn = (0, asn1js_1.fromBER)(Buffer.from(intelCrlDer.data));
167
- this.checkCertificatesInCrl(new pkijs_1.CertificateRevocationList({ schema: intelCrlAsn.result }), certIds);
168
- }
169
- else {
170
- const intelCrlDer = yield axios_1.default.get(`${this.baseUrl}/rootcacrl`);
171
- const intelCrl = this.getCrl(intelCrlDer.data);
172
- this.checkCertificatesInCrl(intelCrl, certIds);
173
- }
174
- const platformCrl = this.getCrl(platformCrlResult.data);
175
- this.checkCertificatesInCrl(platformCrl, certIds);
176
- return { pckCert, rootCertPem: rootFetchedPem };
177
- });
178
- }
179
- verifyQeReportSignature(quote, pckPublicKey) {
180
- return __awaiter(this, void 0, void 0, function* () {
181
- const signature = Buffer.from(quote.qeReportSignature);
182
- const reportHash = yield this.getSha256Hash(Buffer.from(quote.qeReport));
183
- return this.verifyDataBySignature(reportHash, signature, pckPublicKey);
184
- });
185
- }
186
- verifyQeReportData(quote, report) {
187
- return __awaiter(this, void 0, void 0, function* () {
188
- const qeAuthData = quote.qeAuthenticationData;
189
- const attestationKey = quote.ecdsaAttestationKey;
190
- const qeReportDataHash = report.dataHash;
191
- const calculatedHash = yield this.getSha256Hash(Buffer.concat([attestationKey, qeAuthData]));
192
- const result = Buffer.compare(qeReportDataHash, calculatedHash);
193
- return result === 0;
194
- });
195
- }
196
- verifyEnclaveReportSignature(quote) {
197
- return __awaiter(this, void 0, void 0, function* () {
198
- const key = Buffer.from(quote.ecdsaAttestationKey);
199
- const headerBuffer = Buffer.from(quote.rawHeader);
200
- const reportBuffer = Buffer.from(quote.report);
201
- const expected = quote.isvEnclaveReportSignature;
202
- const calculatedHash = yield this.getSha256Hash(Buffer.concat([headerBuffer, reportBuffer]));
203
- const ellipticEc = new ec('p256');
204
- const result = ellipticEc.verify(calculatedHash, {
205
- r: expected.subarray(0, 32),
206
- s: expected.subarray(32),
207
- }, Buffer.concat([Buffer.from([4]), key]));
208
- return result;
209
- });
210
- }
211
- validateQuoteStructure(quote, report, pckPublicKey) {
212
- return __awaiter(this, void 0, void 0, function* () {
213
- if (!(yield this.verifyQeReportSignature(quote, pckPublicKey))) {
214
- throw new errors_js_1.TeeQuoteValidatorError('Wrong QE report signature');
215
- }
216
- if (!(yield this.verifyQeReportData(quote, report))) {
217
- throw new errors_js_1.TeeQuoteValidatorError('Wrong QE report data');
218
- }
219
- if (!(yield this.verifyEnclaveReportSignature(quote))) {
220
- throw new errors_js_1.TeeQuoteValidatorError('Wrong enclave report signature');
221
- }
222
- });
223
- }
224
- getSgxExtensionData(pckCert) {
225
- const sgxExtensionData = pckCert.extensions.find((item) => item.oid === SGX_OID);
226
- if (!sgxExtensionData) {
227
- throw new errors_js_1.TeeQuoteValidatorError('SGX data not found in PCK certificate');
228
- }
229
- return sgxExtensionData;
230
- }
231
- getDataFromExtension(sgxExtensionData, targetOid, targetType) {
232
- const rawData = this.findSequenceByOID(sgxExtensionData.value.toString('hex'), targetOid);
233
- if (!rawData) {
234
- throw new errors_js_1.TeeQuoteValidatorError(`OID ${targetOid} not found in PCK certificate's SGX data`);
235
- }
236
- const data = rawData.value.filter((asnElement) => asnElement.type === targetType);
237
- if (!data.length) {
238
- throw new errors_js_1.TeeQuoteValidatorError(`Data on OID ${targetOid} of type ${targetType} not found`);
239
- }
240
- const result = util.bytesToHex(data[0].value);
241
- return targetType === asn1.Type.OCTETSTRING ? result : parseInt(result, 16).toString();
242
- }
243
- getTcbInfo(fmspc, rootCertPem) {
244
- return __awaiter(this, void 0, void 0, function* () {
245
- const tcbData = yield axios_1.default.get(`${this.baseUrl}/tcb?fmspc=${fmspc}`);
246
- const tcbInfoHeader = 'tcb-info-issuer-chain';
247
- const tcbInfoChain = this.splitChain(decodeURIComponent(tcbData.headers[tcbInfoHeader])); // [tcb, root]
248
- if (tcbInfoChain[1] !== rootCertPem) {
249
- throw new errors_js_1.TeeQuoteValidatorError('Invalid SGX root certificate in TCB chain');
250
- }
251
- const tcbCert = x509_1.Certificate.fromPEM(Buffer.from(tcbInfoChain[0]));
252
- const key = tcbCert.publicKey.keyRaw;
253
- const signature = Buffer.from(tcbData.data.signature, 'hex');
254
- const calculatedhash = yield this.getSha256Hash(Buffer.from(JSON.stringify(tcbData.data.tcbInfo)));
255
- const result = this.verifyDataBySignature(calculatedhash, signature, key);
256
- if (!result) {
257
- throw new errors_js_1.TeeQuoteValidatorError('TCB info signature is not valid');
258
- }
259
- if (tcbData.data.tcbInfo.nextUpdate.valueOf() > Date.now()) {
260
- throw new errors_js_1.TeeQuoteValidatorError('TCB next update date is out of date');
261
- }
262
- return tcbData.data;
263
- });
264
- }
265
- getQEIdentity(rootCertPem) {
266
- return __awaiter(this, void 0, void 0, function* () {
267
- const qeIdentityData = yield axios_1.default.get(`${this.baseUrl}/qe/identity`);
268
- const qeIdentityHeader = 'sgx-enclave-identity-issuer-chain';
269
- const qeIdentityChain = this.splitChain(decodeURIComponent(qeIdentityData.headers[qeIdentityHeader])); // [qeIdentity, root]
270
- if (qeIdentityChain[1] !== rootCertPem) {
271
- throw new errors_js_1.TeeQuoteValidatorError('Invalid SGX root certificate in enclave identity chain');
272
- }
273
- const qeIdentityCert = x509_1.Certificate.fromPEM(Buffer.from(qeIdentityChain[0]));
274
- const key = qeIdentityCert.publicKey.keyRaw;
275
- const signature = Buffer.from(qeIdentityData.data.signature, 'hex');
276
- const calculatedhash = yield this.getSha256Hash(Buffer.from(JSON.stringify(qeIdentityData.data.enclaveIdentity)));
277
- const result = this.verifyDataBySignature(calculatedhash, signature, key);
278
- if (!result) {
279
- throw new errors_js_1.TeeQuoteValidatorError('Enclave identity signature is not valid');
280
- }
281
- if (qeIdentityData.data.enclaveIdentity.nextUpdate.valueOf() > Date.now()) {
282
- throw new errors_js_1.TeeQuoteValidatorError('Enclave identity next update date is out of date');
283
- }
284
- return qeIdentityData.data;
285
- });
286
- }
287
- getQEIdentityStatus(report, qeIdentity) {
288
- const mrSigner = report.mrSigner.toString('hex');
289
- if (mrSigner.toUpperCase() !== qeIdentity.enclaveIdentity.mrsigner) {
290
- throw new errors_js_1.TeeQuoteValidatorError('Wrong MR signer in QE report');
291
- }
292
- if (report.isvProdId !== qeIdentity.enclaveIdentity.isvprodid) {
293
- throw new errors_js_1.TeeQuoteValidatorError('Wrong ISV PROD ID in QE report');
294
- }
295
- const tcbLevel = qeIdentity.enclaveIdentity.tcbLevels.find((tcbLevel) => tcbLevel.tcb.isvsvn <= report.isvSvn);
296
- const status = tcbLevel === null || tcbLevel === void 0 ? void 0 : tcbLevel.tcbStatus;
297
- if (status) {
298
- this.logger.info(`Enclave identity status is ${tcbLevel === null || tcbLevel === void 0 ? void 0 : tcbLevel.tcbStatus}`);
299
- return status;
300
- }
301
- return statuses_js_1.QEIdentityStatuses.OutOfDate;
302
- }
303
- getTcbStatus(fmspc, pceId, tcbData, sgxExtensionData) {
304
- if (fmspc.toUpperCase() !== tcbData.tcbInfo.fmspc.toUpperCase()) {
305
- throw new errors_js_1.TeeQuoteValidatorError('Wrong FMSPC in PCK certificate');
306
- }
307
- if (pceId !== tcbData.tcbInfo.pceId) {
308
- throw new errors_js_1.TeeQuoteValidatorError('Wrong PCEID in PCK certificate');
309
- }
310
- const pceSvn = this.getDataFromExtension(sgxExtensionData, PCESVN_OID, asn1.Type.INTEGER);
311
- const sgxComponents = [...Array(16).keys()].map((i) => this.getDataFromExtension(sgxExtensionData, `${TCB_OID}.${i + 1}`, asn1.Type.INTEGER));
312
- const tcbLevel = tcbData.tcbInfo.tcbLevels.find((tcbLevel) => tcbLevel.tcb.pcesvn <= Number(pceSvn) &&
313
- tcbLevel.tcb.sgxtcbcomponents.every((el, index) => el.svn <= Number(sgxComponents[index])));
314
- const status = tcbLevel === null || tcbLevel === void 0 ? void 0 : tcbLevel.tcbStatus;
315
- if (status) {
316
- this.logger.info(`TCB status is ${tcbLevel === null || tcbLevel === void 0 ? void 0 : tcbLevel.tcbStatus}`);
317
- return status;
318
- }
319
- return statuses_js_1.TCBStatuses.OutOfDate;
320
- }
321
- getQuoteValidationStatus(qeIdentityStatus, tcbStatus) {
322
- if (qeIdentityStatus === statuses_js_1.QEIdentityStatuses.OutOfDate) {
323
- if (tcbStatus === statuses_js_1.TCBStatuses.UpToDate || tcbStatus === statuses_js_1.TCBStatuses.SWHardeningNeeded) {
324
- return statuses_js_1.QuoteValidationStatuses.SecurityPatchNeeded;
325
- }
326
- if (tcbStatus === statuses_js_1.TCBStatuses.OutOfDateConfigurationNeeded ||
327
- tcbStatus === statuses_js_1.TCBStatuses.ConfigurationAndSWHardeningNeeded) {
328
- return statuses_js_1.QuoteValidationStatuses.SoftwareUpdateNeeded;
329
- }
330
- }
331
- if (qeIdentityStatus === statuses_js_1.QEIdentityStatuses.Revoked || tcbStatus === statuses_js_1.TCBStatuses.Revoked) {
332
- throw new errors_js_1.TeeQuoteValidatorError('QE identity or TCB revoked');
333
- }
334
- if (tcbStatus === statuses_js_1.TCBStatuses.UpToDate) {
335
- return statuses_js_1.QuoteValidationStatuses.UpToDate;
336
- }
337
- if (tcbStatus === statuses_js_1.TCBStatuses.OutOfDate) {
338
- return statuses_js_1.QuoteValidationStatuses.SecurityPatchNeeded;
339
- }
340
- if (tcbStatus === statuses_js_1.TCBStatuses.ConfigurationNeeded) {
341
- return statuses_js_1.QuoteValidationStatuses.ConfigurationNeeded;
342
- }
343
- return statuses_js_1.QuoteValidationStatuses.SoftwareUpdateNeeded;
344
- }
345
- getQuoteValidationStatusDescription(status) {
346
- switch (status) {
347
- case statuses_js_1.QuoteValidationStatuses.UpToDate:
348
- return 'The Quote verification passed and is at the latest TCB level.';
349
- case statuses_js_1.QuoteValidationStatuses.ConfigurationNeeded:
350
- return `The SGX platform firmware and SW are at the latest security patching level
351
- but there are platform hardware configurations may expose the enclave to vulnerabilities.`;
352
- case statuses_js_1.QuoteValidationStatuses.SecurityPatchNeeded:
353
- return `The SGX platform firmware and SW are not at the latest security patching level.
354
- The platform needs to be patched with firmware and/or software patches.`;
355
- case statuses_js_1.QuoteValidationStatuses.SoftwareUpdateNeeded:
356
- return `The SGX platform firmware and SW are at the latest security patching level but there are
357
- certain vulnerabilities that can only be mitigated with software mitigations implemented by the enclave.`;
358
- default:
359
- return 'Quote verification failed.';
360
- }
361
- }
362
- validate(quoteBuffer) {
363
- return __awaiter(this, void 0, void 0, function* () {
364
- try {
365
- const quote = this.teeSgxParser.parseQuote(quoteBuffer);
366
- const report = this.teeSgxParser.parseReport(quote.qeReport);
367
- const { pckCert, rootCertPem } = yield this.getCertificates(quote);
368
- yield this.validateQuoteStructure(quote, report, pckCert.publicKey.keyRaw);
369
- this.logger.info('Quote structure validated successfully');
370
- const sgxExtensionData = this.getSgxExtensionData(pckCert);
371
- const fmspc = this.getDataFromExtension(sgxExtensionData, FMSPC_OID, asn1.Type.OCTETSTRING);
372
- const pceId = this.getDataFromExtension(sgxExtensionData, PCEID_OID, asn1.Type.OCTETSTRING);
373
- const tcbData = yield this.getTcbInfo(fmspc, rootCertPem);
374
- const qeIdentity = yield this.getQEIdentity(rootCertPem);
375
- const qeIdentityStatus = this.getQEIdentityStatus(report, qeIdentity);
376
- const tcbStatus = this.getTcbStatus(fmspc, pceId, tcbData, sgxExtensionData);
377
- const quoteValidationStatus = this.getQuoteValidationStatus(qeIdentityStatus, tcbStatus);
378
- this.logger.info(`Quote validation status is ${quoteValidationStatus}`);
379
- return {
380
- quoteValidationStatus,
381
- description: this.getQuoteValidationStatusDescription(quoteValidationStatus),
382
- };
383
- }
384
- catch (error) {
385
- this.logger.error(`Validation error: ${error}`);
386
- return {
387
- quoteValidationStatus: statuses_js_1.QuoteValidationStatuses.Error,
388
- description: this.getQuoteValidationStatusDescription(statuses_js_1.QuoteValidationStatuses.Error),
389
- error,
390
- };
391
- }
392
- });
393
- }
394
- isQuoteHasUserData(quoteBuffer, userDataBuffer) {
395
- return __awaiter(this, void 0, void 0, function* () {
396
- const quote = this.teeSgxParser.parseQuote(quoteBuffer);
397
- const report = this.teeSgxParser.parseReport(quote.report);
398
- const userDataHash = yield this.getSha256Hash(userDataBuffer);
399
- const slicedQuoteData = report.userData.slice(0, userDataHash.length);
400
- const compareResult = Buffer.compare(slicedQuoteData, userDataHash);
401
- return compareResult === 0;
402
- });
403
- }
404
- getSha256Hash(data) {
405
- return __awaiter(this, void 0, void 0, function* () {
406
- const hashInfo = {
407
- algo: dto_js_1.HashAlgorithm.SHA256,
408
- encoding: dto_js_1.Encoding.base64,
409
- };
410
- const hashData = yield index_js_1.default.createHash(data, hashInfo);
411
- return Buffer.from(hashData.hash, hashData.encoding);
412
- });
413
- }
414
- }
415
- exports.QuoteValidator = QuoteValidator;
416
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUXVvdGVWYWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVlL1F1b3RlVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUEwQjtBQUMxQix3REFBZ0M7QUFDaEMsNERBQStCO0FBQy9CLHFDQUFvRDtBQUNwRCx5REFBOEM7QUFDOUMsaUNBQWtEO0FBQ2xELG1DQUFpQztBQUNqQyxvREFBdUI7QUFDdkIscURBQWdEO0FBRWhELDZEQUFzQztBQUV0QywyQ0FBcUQ7QUFDckQsK0NBQXlGO0FBQ3pGLG1EQUFpRTtBQUNqRSxrRUFBd0M7QUFFeEMsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLGtCQUFRLENBQUM7QUFDeEIsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxvQkFBSyxDQUFDO0FBRTdCLE1BQU0sa0JBQWtCLEdBQUcsdUNBQXVDLENBQUM7QUFDbkUsTUFBTSxxQkFBcUIsR0FBRyxtRUFBbUUsQ0FBQztBQUNsRyxNQUFNLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQztBQUN4QyxNQUFNLFNBQVMsR0FBRyxHQUFHLE9BQU8sSUFBSSxDQUFDO0FBQ2pDLE1BQU0sU0FBUyxHQUFHLEdBQUcsT0FBTyxJQUFJLENBQUM7QUFDakMsTUFBTSxPQUFPLEdBQUcsR0FBRyxPQUFPLElBQUksQ0FBQztBQUMvQixNQUFNLFVBQVUsR0FBRyxHQUFHLE9BQU8sS0FBSyxDQUFDO0FBQ25DLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxVQUFVLENBQUM7SUFDeEMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxH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
@@ -1,119 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Signature = exports.splitChain = void 0;
4
- const splitChain = (chain) => {
5
- const begin = '-----BEGIN CERTIFICATE-----';
6
- const end = '-----END CERTIFICATE-----';
7
- return chain
8
- .split(begin)
9
- .filter(Boolean)
10
- .map((cert) => begin.concat(cert.slice(0, cert.indexOf(end)), end));
11
- };
12
- exports.splitChain = splitChain;
13
- class Position {
14
- constructor() {
15
- this.place = 0;
16
- }
17
- }
18
- class Signature {
19
- static toArray(msg) {
20
- if (Array.isArray(msg)) {
21
- return new Uint8Array(msg);
22
- }
23
- if (!msg) {
24
- return new Uint8Array();
25
- }
26
- const res = [];
27
- if (typeof msg !== 'string') {
28
- return new Uint8Array(msg);
29
- }
30
- msg = msg.replace(/[^a-z0-9]+/gi, '');
31
- if (msg.length % 2 !== 0) {
32
- msg = '0' + msg;
33
- }
34
- for (let i = 0; i < msg.length; i += 2) {
35
- res.push(parseInt(msg[i] + msg[i + 1], 16));
36
- }
37
- return new Uint8Array(res);
38
- }
39
- static importFromDER(signature) {
40
- const data = Signature.toArray(signature);
41
- const p = new Position();
42
- if (data[p.place++] !== 0x30) {
43
- throw new Error('Invald DER');
44
- }
45
- const len = Signature.getLength(data, p);
46
- if (len === false) {
47
- throw new Error('Invald DER');
48
- }
49
- if (Number(len) + p.place !== data.length) {
50
- throw new Error('Invald DER');
51
- }
52
- if (data[p.place++] !== 0x02) {
53
- throw new Error('Invald DER');
54
- }
55
- const rlen = Signature.getLength(data, p);
56
- if (rlen === false) {
57
- throw new Error('Invald DER');
58
- }
59
- let r = data.slice(p.place, Number(rlen) + p.place);
60
- p.place += Number(rlen);
61
- if (data[p.place++] !== 0x02) {
62
- throw new Error('Invald DER');
63
- }
64
- const slen = this.getLength(data, p);
65
- if (slen === false) {
66
- throw new Error('Invald DER');
67
- }
68
- if (data.length !== Number(slen) + p.place) {
69
- throw new Error('Invald DER');
70
- }
71
- let s = data.slice(p.place, Number(slen) + p.place);
72
- if (r[0] === 0) {
73
- if (r[1] & 0x80) {
74
- r = r.slice(1);
75
- }
76
- else {
77
- throw new Error('Leading zeroes');
78
- }
79
- }
80
- if (s[0] === 0) {
81
- if (s[1] & 0x80) {
82
- s = s.slice(1);
83
- }
84
- else {
85
- throw new Error('Leading zeroes');
86
- }
87
- }
88
- return {
89
- r: Buffer.from(r).toString('hex'),
90
- s: Buffer.from(s).toString('hex'),
91
- };
92
- }
93
- static getLength(buf, p) {
94
- const initial = buf[p.place++];
95
- if (!(initial & 0x80)) {
96
- return initial;
97
- }
98
- const octetLen = initial & 0xf;
99
- // Indefinite length or overflow
100
- if (octetLen === 0 || octetLen > 4) {
101
- return false;
102
- }
103
- let val = 0;
104
- let off = p.place;
105
- for (let i = 0; i < octetLen; i++, off++) {
106
- val <<= 8;
107
- val |= buf[off];
108
- val >>>= 0;
109
- }
110
- // Leading zeroes
111
- if (val <= 0x7f) {
112
- return false;
113
- }
114
- p.place = off;
115
- return val;
116
- }
117
- }
118
- exports.Signature = Signature;
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZWUvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBTyxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQWEsRUFBWSxFQUFFO0lBQ3BELE1BQU0sS0FBSyxHQUFHLDZCQUE2QixDQUFDO0lBQzVDLE1BQU0sR0FBRyxHQUFHLDJCQUEyQixDQUFDO0lBRXhDLE9BQU8sS0FBSztTQUNULEtBQUssQ0FBQyxLQUFLLENBQUM7U0FDWixNQUFNLENBQUMsT0FBTyxDQUFDO1NBQ2YsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3hFLENBQUMsQ0FBQztBQVJXLFFBQUEsVUFBVSxjQVFyQjtBQUVGLE1BQU0sUUFBUTtJQUdaO1FBQ0UsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBRUQsTUFBYSxTQUFTO0lBQ3BCLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBa0M7UUFDL0MsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3RCLE9BQU8sSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDNUI7UUFFRCxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsT0FBTyxJQUFJLFVBQVUsRUFBRSxDQUFDO1NBQ3pCO1FBRUQsTUFBTSxHQUFHLEdBQWEsRUFBRSxDQUFDO1FBRXpCLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFO1lBQzNCLE9BQU8sSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDNUI7UUFFRCxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEMsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7U0FDakI7UUFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3RDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDN0M7UUFFRCxPQUFPLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQWlCO1FBSXBDLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUMvQjtRQUNELE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLElBQUksR0FBRyxLQUFLLEtBQUssRUFBRTtZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3pDLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDL0I7UUFDRCxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUMvQjtRQUNELE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFDLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRTtZQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDL0I7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyQyxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUU7WUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUMvQjtRQUNELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUMxQyxNQUFNLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2QsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFO2dCQUNmLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2hCO2lCQUFNO2dCQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzthQUNuQztTQUNGO1FBQ0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2QsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFO2dCQUNmLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2hCO2lCQUFNO2dCQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzthQUNuQztTQUNGO1FBRUQsT0FBTztZQUNMLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDakMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztTQUNsQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBZSxFQUFFLENBQVc7UUFDM0MsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsRUFBRTtZQUNyQixPQUFPLE9BQU8sQ0FBQztTQUNoQjtRQUNELE1BQU0sUUFBUSxHQUFHLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFFL0IsZ0NBQWdDO1FBQ2hDLElBQUksUUFBUSxLQUFLLENBQUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFO1lBQ2xDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDWixJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2xCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDeEMsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUNWLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEIsR0FBRyxNQUFNLENBQUMsQ0FBQztTQUNaO1FBRUQsaUJBQWlCO1FBQ2pCLElBQUksR0FBRyxJQUFJLElBQUksRUFBRTtZQUNmLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxDQUFDLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUNkLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUNGO0FBaEhELDhCQWdIQyJ9
@@ -1,6 +0,0 @@
1
- import { TokenAmount } from './Web3.js';
2
- export type DepositInfo = {
3
- amount: TokenAmount;
4
- totalLocked: TokenAmount;
5
- profit: TokenAmount;
6
- };
@@ -1,34 +0,0 @@
1
- import { OrderStatus } from './Order.js';
2
- import { BlockchainId, TokenAmount } from './Web3.js';
3
- export type OfferCreatedEvent = {
4
- creator: string;
5
- externalId: string;
6
- offerId: BlockchainId;
7
- };
8
- export type OrderCreatedEvent = {
9
- consumer: string;
10
- externalId: string;
11
- offerId: BlockchainId;
12
- parentOrderId: BlockchainId;
13
- orderId: BlockchainId;
14
- deposit: TokenAmount;
15
- orderStatus: OrderStatus;
16
- };
17
- export type TeeSlotAddedEvent = {
18
- creator: string;
19
- offerId: BlockchainId;
20
- slotId: BlockchainId;
21
- externalId: string;
22
- };
23
- export type ValueSlotAddedEvent = {
24
- creator: string;
25
- offerId: BlockchainId;
26
- slotId: BlockchainId;
27
- externalId: string;
28
- };
29
- export type OptionAddedEvent = {
30
- creator: string;
31
- teeOfferId: BlockchainId;
32
- optionId: BlockchainId;
33
- externalId: string;
34
- };
@@ -1,6 +0,0 @@
1
- import { OptionInfo } from './OptionInfo.js';
2
- import { SlotInfo } from './SlotInfo.js';
3
- export type HardwareInfo = {
4
- slotInfo: SlotInfo;
5
- optionInfo: OptionInfo;
6
- };