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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (527) hide show
  1. package/{build → dist/cjs}/TIIGenerator.d.ts +4 -6
  2. package/dist/cjs/TIIGenerator.js +232 -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.d.ts +33 -107
  28. package/{build → dist/cjs}/contracts/abi.js +34 -131
  29. package/dist/cjs/crypto/Crypto.js +100 -0
  30. package/dist/cjs/crypto/index.d.ts +2 -0
  31. package/{build → dist/cjs}/crypto/index.js +3 -3
  32. package/dist/cjs/crypto/nodejs/AES.js +79 -0
  33. package/dist/cjs/crypto/nodejs/ARIA.js +78 -0
  34. package/dist/cjs/crypto/nodejs/ECIES.js +56 -0
  35. package/{build → dist/cjs}/crypto/nodejs/NativeCrypto.d.ts +3 -3
  36. package/dist/cjs/crypto/nodejs/NativeCrypto.js +165 -0
  37. package/dist/cjs/crypto/nodejs/RSA-Hybrid.js +94 -0
  38. package/dist/cjs/index.d.ts +80 -0
  39. package/dist/cjs/index.js +143 -0
  40. package/{build → dist/cjs}/logger.js +1 -1
  41. package/{build → dist/cjs}/models/EtlModel.d.ts +1 -1
  42. package/dist/cjs/models/EtlModel.js +126 -0
  43. package/{build → dist/cjs}/models/Offer.d.ts +1 -1
  44. package/dist/cjs/models/Offer.js +361 -0
  45. package/{build → dist/cjs}/models/Order.d.ts +1 -1
  46. package/dist/cjs/models/Order.js +543 -0
  47. package/{build → dist/cjs}/models/Provider.d.ts +1 -1
  48. package/dist/cjs/models/Provider.js +119 -0
  49. package/{build → dist/cjs}/models/TCB.d.ts +1 -1
  50. package/dist/cjs/models/TCB.js +112 -0
  51. package/{build → dist/cjs}/models/TeeOffer.d.ts +2 -2
  52. package/dist/cjs/models/TeeOffer.js +538 -0
  53. package/dist/cjs/models/index.d.ts +5 -0
  54. package/dist/cjs/models/index.js +17 -0
  55. package/dist/cjs/package.json +1 -0
  56. package/dist/cjs/polyfills.js +7 -0
  57. package/{build → dist/cjs}/proto/Compression.d.ts +1 -1
  58. package/dist/cjs/proto/Compression.js +131 -0
  59. package/{build → dist/cjs}/proto/TRI.d.ts +1 -1
  60. package/dist/cjs/proto/TRI.js +290 -0
  61. package/{build → dist/cjs}/proto/TeeProperties.d.ts +1 -1
  62. package/dist/cjs/proto/TeeProperties.js +397 -0
  63. package/{build → dist/cjs}/providers/storage/ChunksDownloadDecorator.d.ts +2 -2
  64. package/dist/cjs/providers/storage/ChunksDownloadDecorator.js +145 -0
  65. package/{build → dist/cjs}/providers/storage/IStorageProvider.d.ts +1 -1
  66. package/{build → dist/cjs}/providers/storage/IStorageProvider.js +1 -1
  67. package/{build → dist/cjs}/providers/storage/S3StorageProvider.d.ts +2 -2
  68. package/dist/cjs/providers/storage/S3StorageProvider.js +171 -0
  69. package/{build → dist/cjs}/providers/storage/StorageAdapter.d.ts +2 -2
  70. package/dist/cjs/providers/storage/StorageAdapter.js +301 -0
  71. package/{build → dist/cjs}/providers/storage/StorageContentWriter.d.ts +2 -2
  72. package/dist/cjs/providers/storage/StorageContentWriter.js +168 -0
  73. package/{build → dist/cjs}/providers/storage/StorageKeyValueAdapter.d.ts +2 -2
  74. package/dist/cjs/providers/storage/StorageKeyValueAdapter.js +125 -0
  75. package/{build → dist/cjs}/providers/storage/StorageMetadataReader.d.ts +3 -3
  76. package/dist/cjs/providers/storage/StorageMetadataReader.js +57 -0
  77. package/{build → dist/cjs}/providers/storage/StorjAdapter.d.ts +2 -2
  78. package/dist/cjs/providers/storage/StorjAdapter.js +54 -0
  79. package/{build → dist/cjs}/providers/storage/StorjStorageProvider.d.ts +2 -3
  80. package/dist/cjs/providers/storage/StorjStorageProvider.js +145 -0
  81. package/dist/cjs/providers/storage/getStorageProvider.d.ts +4 -0
  82. package/dist/cjs/providers/storage/getStorageProvider.js +20 -0
  83. package/{build → dist/cjs}/providers/storage/types.js +1 -1
  84. package/{build → dist/cjs}/staticModels/ActiveOffers.d.ts +1 -1
  85. package/dist/cjs/staticModels/ActiveOffers.js +37 -0
  86. package/{build → dist/cjs}/staticModels/ActiveOrders.d.ts +1 -1
  87. package/dist/cjs/staticModels/ActiveOrders.js +76 -0
  88. package/{build → dist/cjs}/staticModels/Consensus.d.ts +1 -1
  89. package/dist/cjs/staticModels/Consensus.js +225 -0
  90. package/{build → dist/cjs}/staticModels/Deposits.d.ts +1 -1
  91. package/dist/cjs/staticModels/Deposits.js +195 -0
  92. package/{build → dist/cjs}/staticModels/Marks.d.ts +1 -1
  93. package/dist/cjs/staticModels/Marks.js +30 -0
  94. package/dist/cjs/staticModels/ModelPackager.js +49 -0
  95. package/{build → dist/cjs}/staticModels/Offers.d.ts +2 -2
  96. package/dist/cjs/staticModels/Offers.js +189 -0
  97. package/{build → dist/cjs}/staticModels/Orders.d.ts +2 -2
  98. package/dist/cjs/staticModels/Orders.js +504 -0
  99. package/{build → dist/cjs}/staticModels/ProviderRegistry.d.ts +1 -1
  100. package/dist/cjs/staticModels/ProviderRegistry.js +174 -0
  101. package/{build → dist/cjs}/staticModels/StaticModel.d.ts +2 -2
  102. package/dist/cjs/staticModels/StaticModel.js +35 -0
  103. package/{build → dist/cjs}/staticModels/Superpro.d.ts +2 -2
  104. package/dist/cjs/staticModels/Superpro.js +25 -0
  105. package/{build → dist/cjs}/staticModels/SuperproToken.d.ts +1 -1
  106. package/dist/cjs/staticModels/SuperproToken.js +141 -0
  107. package/{build → dist/cjs}/staticModels/TeeOffers.d.ts +1 -1
  108. package/dist/cjs/staticModels/TeeOffers.js +314 -0
  109. package/dist/cjs/store.js +17 -0
  110. package/{build → dist/cjs}/tee/QuoteParser.d.ts +1 -1
  111. package/dist/cjs/tee/QuoteParser.js +189 -0
  112. package/{build → dist/cjs}/tee/QuoteValidator.d.ts +1 -1
  113. package/dist/cjs/tee/QuoteValidator.js +391 -0
  114. package/{build → dist/cjs}/tee/errors.js +1 -1
  115. package/dist/cjs/tee/helpers.js +120 -0
  116. package/{build → dist/cjs}/tee/interface.d.ts +1 -1
  117. package/{build → dist/cjs}/tee/interface.js +1 -1
  118. package/{build → dist/cjs}/tee/statuses.js +4 -4
  119. package/{build → dist/cjs}/tee/types.d.ts +5 -0
  120. package/{build → dist/cjs}/tee/types.js +1 -1
  121. package/{build → dist/cjs}/types/Compressor.js +1 -1
  122. package/{build → dist/cjs}/types/Consensus.d.ts +1 -1
  123. package/{build → dist/cjs}/types/Consensus.js +2 -2
  124. package/{build → dist/cjs}/types/DepositInfo.d.ts +1 -1
  125. package/{build → dist/cjs}/types/DepositInfo.js +1 -1
  126. package/{build → dist/cjs}/types/EtlModel.js +1 -1
  127. package/{build → dist/cjs}/types/Events.d.ts +2 -2
  128. package/{build → dist/cjs}/types/Events.js +1 -1
  129. package/dist/cjs/types/HardwareInfo.d.ts +6 -0
  130. package/{build → dist/cjs}/types/HardwareInfo.js +1 -1
  131. package/{build → dist/cjs}/types/Marks.js +2 -2
  132. package/{build → dist/cjs}/types/Offer.d.ts +1 -1
  133. package/dist/cjs/types/Offer.js +17 -0
  134. package/{build → dist/cjs}/types/OptionInfo.js +1 -1
  135. package/{build → dist/cjs}/types/Order.d.ts +3 -17
  136. package/dist/cjs/types/Order.js +15 -0
  137. package/{build → dist/cjs}/types/OrderUsage.d.ts +4 -4
  138. package/{build → dist/cjs}/types/OrderUsage.js +1 -1
  139. package/{build → dist/cjs}/types/Origins.js +1 -1
  140. package/{build → dist/cjs}/types/Provider.js +1 -1
  141. package/{build → dist/cjs}/types/ResourceLoader.d.ts +1 -1
  142. package/{build → dist/cjs}/types/ResourceLoader.js +1 -1
  143. package/{build → dist/cjs}/types/SlotInfo.js +1 -1
  144. package/{build → dist/cjs}/types/SlotUsage.d.ts +1 -1
  145. package/{build → dist/cjs}/types/SlotUsage.js +2 -2
  146. package/{build → dist/cjs}/types/Superpro.js +2 -2
  147. package/{build → dist/cjs}/types/TeeOfferInfo.d.ts +1 -1
  148. package/{build → dist/cjs}/types/TeeOfferInfo.js +1 -1
  149. package/{build → dist/cjs}/types/TeeOfferOption.d.ts +3 -3
  150. package/{build → dist/cjs}/types/TeeOfferOption.js +1 -1
  151. package/dist/cjs/types/TeeOfferSlot.d.ts +8 -0
  152. package/{build → dist/cjs}/types/TeeOfferSlot.js +1 -1
  153. package/{build → dist/cjs}/types/ValueOfferSlot.d.ts +4 -4
  154. package/{build → dist/cjs}/types/ValueOfferSlot.js +1 -1
  155. package/{build → dist/cjs}/types/Web3.js +1 -1
  156. package/{build → dist/cjs}/types/blockchainConnector/StorageAccess.d.ts +1 -1
  157. package/{build → dist/cjs}/types/blockchainConnector/StorageAccess.js +1 -1
  158. package/dist/cjs/types/index.d.ts +22 -0
  159. package/dist/cjs/types/index.js +39 -0
  160. package/{build → dist/cjs}/types/storage/StorageAccess.js +1 -1
  161. package/{build → dist/cjs}/types/storage/StorageFileAccess.d.ts +1 -1
  162. package/{build → dist/cjs}/types/storage/StorageFileAccess.js +1 -1
  163. package/{build → dist/cjs}/types/storage/StorageObject.js +1 -1
  164. package/dist/cjs/utils/Monitoring.js +49 -0
  165. package/dist/cjs/utils/NonceTracker.js +78 -0
  166. package/dist/cjs/utils/PubSub.js +35 -0
  167. package/{build → dist/cjs}/utils/TxManager.d.ts +1 -1
  168. package/dist/cjs/utils/TxManager.js +169 -0
  169. package/{build → dist/cjs}/utils/compressors/GzipCompressor.d.ts +2 -2
  170. package/dist/cjs/utils/compressors/GzipCompressor.js +22 -0
  171. package/{build → dist/cjs}/utils/compressors/UncompressedCompressor.d.ts +2 -2
  172. package/dist/cjs/utils/compressors/UncompressedCompressor.js +17 -0
  173. package/dist/cjs/utils/compressors/index.d.ts +2 -0
  174. package/{build → dist/cjs}/utils/compressors/index.js +3 -3
  175. package/{build → dist/cjs}/utils/helper.d.ts +3 -3
  176. package/dist/cjs/utils/helper.js +289 -0
  177. package/dist/cjs/utils/helpers/getStreamChunks.js +35 -0
  178. package/dist/cjs/utils/helpers/index.d.ts +1 -0
  179. package/{build → dist/cjs}/utils/helpers/index.js +2 -2
  180. package/dist/cjs/utils/helpers/tryWithInterval.js +39 -0
  181. package/{build → dist/cjs}/utils/resourceLoaders/BaseResourceLoader.d.ts +1 -1
  182. package/dist/cjs/utils/resourceLoaders/BaseResourceLoader.js +14 -0
  183. package/{build → dist/cjs}/utils/resourceLoaders/StorageProviderLoader.d.ts +2 -2
  184. package/dist/cjs/utils/resourceLoaders/StorageProviderLoader.js +60 -0
  185. package/{build → dist/cjs}/utils/resourceLoaders/UrlResourceLoader.d.ts +1 -1
  186. package/dist/cjs/utils/resourceLoaders/UrlResourceLoader.js +51 -0
  187. package/{build → dist/cjs}/utils/resourceLoaders/getResourceLoader.d.ts +1 -1
  188. package/dist/cjs/utils/resourceLoaders/getResourceLoader.js +15 -0
  189. package/dist/cjs/utils/resourceLoaders/index.d.ts +1 -0
  190. package/{build → dist/cjs}/utils/resourceLoaders/index.js +2 -2
  191. package/dist/mjs/TIIGenerator.d.ts +22 -0
  192. package/dist/mjs/TIIGenerator.js +227 -0
  193. package/dist/mjs/analytics/Analytics.d.ts +15 -0
  194. package/dist/mjs/analytics/Analytics.js +61 -0
  195. package/dist/mjs/analytics/AnalyticsError.d.ts +7 -0
  196. package/dist/mjs/analytics/AnalyticsError.js +8 -0
  197. package/dist/mjs/analytics/eventProviders/BrowserEventProvider.d.ts +18 -0
  198. package/dist/mjs/analytics/eventProviders/BrowserEventProvider.js +32 -0
  199. package/dist/mjs/analytics/eventProviders/EventProvider.d.ts +24 -0
  200. package/dist/mjs/analytics/eventProviders/EventProvider.js +22 -0
  201. package/dist/mjs/analytics/eventProviders/NodeEventProvider.d.ts +22 -0
  202. package/dist/mjs/analytics/eventProviders/NodeEventProvider.js +50 -0
  203. package/dist/mjs/analytics/transports/AxiosTransport.d.ts +4 -0
  204. package/dist/mjs/analytics/transports/AxiosTransport.js +31 -0
  205. package/dist/mjs/analytics/transports/FetchTransport.d.ts +4 -0
  206. package/dist/mjs/analytics/transports/FetchTransport.js +28 -0
  207. package/dist/mjs/analytics/types.d.ts +22 -0
  208. package/dist/mjs/analytics/types.js +2 -0
  209. package/dist/mjs/config.d.ts +4 -0
  210. package/dist/mjs/config.js +5 -0
  211. package/dist/mjs/connectors/BaseConnector.d.ts +36 -0
  212. package/dist/mjs/connectors/BaseConnector.js +34 -0
  213. package/dist/mjs/connectors/BlockchainConnector.d.ts +81 -0
  214. package/dist/mjs/connectors/BlockchainConnector.js +313 -0
  215. package/dist/mjs/connectors/BlockchainEventsListener.d.ts +15 -0
  216. package/dist/mjs/connectors/BlockchainEventsListener.js +75 -0
  217. package/dist/mjs/connectors/index.d.ts +2 -0
  218. package/dist/mjs/connectors/index.js +3 -0
  219. package/dist/mjs/constants.d.ts +13 -0
  220. package/dist/mjs/constants.js +14 -0
  221. package/dist/mjs/contracts/abi.d.ts +9842 -0
  222. package/dist/mjs/contracts/abi.js +12844 -0
  223. package/dist/mjs/crypto/Crypto.d.ts +54 -0
  224. package/dist/mjs/crypto/Crypto.js +95 -0
  225. package/dist/mjs/crypto/index.d.ts +2 -0
  226. package/dist/mjs/crypto/index.js +3 -0
  227. package/dist/mjs/crypto/nodejs/AES.d.ts +24 -0
  228. package/dist/mjs/crypto/nodejs/AES.js +74 -0
  229. package/dist/mjs/crypto/nodejs/ARIA.d.ts +24 -0
  230. package/dist/mjs/crypto/nodejs/ARIA.js +73 -0
  231. package/dist/mjs/crypto/nodejs/ECIES.d.ts +6 -0
  232. package/dist/mjs/crypto/nodejs/ECIES.js +51 -0
  233. package/dist/mjs/crypto/nodejs/NativeCrypto.d.ts +58 -0
  234. package/dist/mjs/crypto/nodejs/NativeCrypto.js +163 -0
  235. package/dist/mjs/crypto/nodejs/RSA-Hybrid.d.ts +15 -0
  236. package/dist/mjs/crypto/nodejs/RSA-Hybrid.js +89 -0
  237. package/dist/mjs/index.d.ts +80 -0
  238. package/dist/mjs/index.js +76 -0
  239. package/dist/mjs/logger.d.ts +7 -0
  240. package/dist/mjs/logger.js +7 -0
  241. package/dist/mjs/models/EtlModel.d.ts +34 -0
  242. package/dist/mjs/models/EtlModel.js +96 -0
  243. package/dist/mjs/models/Offer.d.ts +130 -0
  244. package/dist/mjs/models/Offer.js +356 -0
  245. package/dist/mjs/models/Order.d.ts +148 -0
  246. package/dist/mjs/models/Order.js +538 -0
  247. package/dist/mjs/models/Provider.d.ts +51 -0
  248. package/dist/mjs/models/Provider.js +114 -0
  249. package/dist/mjs/models/TCB.d.ts +58 -0
  250. package/dist/mjs/models/TCB.js +107 -0
  251. package/dist/mjs/models/TeeOffer.d.ts +204 -0
  252. package/dist/mjs/models/TeeOffer.js +533 -0
  253. package/dist/mjs/models/index.d.ts +5 -0
  254. package/dist/mjs/models/index.js +6 -0
  255. package/dist/mjs/package.json +1 -0
  256. package/dist/mjs/polyfills.d.ts +0 -0
  257. package/dist/mjs/polyfills.js +7 -0
  258. package/dist/mjs/proto/Compression.d.ts +36 -0
  259. package/dist/mjs/proto/Compression.js +123 -0
  260. package/dist/mjs/proto/TRI.d.ts +124 -0
  261. package/dist/mjs/proto/TRI.js +284 -0
  262. package/dist/mjs/proto/TeeProperties.d.ts +263 -0
  263. package/dist/mjs/proto/TeeProperties.js +391 -0
  264. package/dist/mjs/providers/storage/ChunksDownloadDecorator.d.ts +36 -0
  265. package/dist/mjs/providers/storage/ChunksDownloadDecorator.js +139 -0
  266. package/dist/mjs/providers/storage/IStorageProvider.d.ts +15 -0
  267. package/dist/mjs/providers/storage/IStorageProvider.js +2 -0
  268. package/dist/mjs/providers/storage/S3StorageProvider.d.ts +25 -0
  269. package/dist/mjs/providers/storage/S3StorageProvider.js +167 -0
  270. package/dist/mjs/providers/storage/StorageAdapter.d.ts +60 -0
  271. package/dist/mjs/providers/storage/StorageAdapter.js +271 -0
  272. package/dist/mjs/providers/storage/StorageContentWriter.d.ts +46 -0
  273. package/dist/mjs/providers/storage/StorageContentWriter.js +161 -0
  274. package/dist/mjs/providers/storage/StorageKeyValueAdapter.d.ts +23 -0
  275. package/dist/mjs/providers/storage/StorageKeyValueAdapter.js +119 -0
  276. package/dist/mjs/providers/storage/StorageMetadataReader.d.ts +20 -0
  277. package/dist/mjs/providers/storage/StorageMetadataReader.js +51 -0
  278. package/dist/mjs/providers/storage/StorjAdapter.d.ts +19 -0
  279. package/dist/mjs/providers/storage/StorjAdapter.js +48 -0
  280. package/dist/mjs/providers/storage/StorjStorageProvider.d.ts +24 -0
  281. package/dist/mjs/providers/storage/StorjStorageProvider.js +139 -0
  282. package/dist/mjs/providers/storage/getStorageProvider.d.ts +4 -0
  283. package/dist/mjs/providers/storage/getStorageProvider.js +15 -0
  284. package/dist/mjs/providers/storage/types.d.ts +7 -0
  285. package/dist/mjs/providers/storage/types.js +2 -0
  286. package/dist/mjs/staticModels/ActiveOffers.d.ts +15 -0
  287. package/dist/mjs/staticModels/ActiveOffers.js +32 -0
  288. package/dist/mjs/staticModels/ActiveOrders.d.ts +20 -0
  289. package/dist/mjs/staticModels/ActiveOrders.js +71 -0
  290. package/dist/mjs/staticModels/Consensus.d.ts +42 -0
  291. package/dist/mjs/staticModels/Consensus.js +220 -0
  292. package/dist/mjs/staticModels/Deposits.d.ts +70 -0
  293. package/dist/mjs/staticModels/Deposits.js +190 -0
  294. package/dist/mjs/staticModels/Marks.d.ts +8 -0
  295. package/dist/mjs/staticModels/Marks.js +25 -0
  296. package/dist/mjs/staticModels/ModelPackager.d.ts +18 -0
  297. package/dist/mjs/staticModels/ModelPackager.js +45 -0
  298. package/dist/mjs/staticModels/Offers.d.ts +65 -0
  299. package/dist/mjs/staticModels/Offers.js +184 -0
  300. package/dist/mjs/staticModels/Orders.d.ts +155 -0
  301. package/dist/mjs/staticModels/Orders.js +499 -0
  302. package/dist/mjs/staticModels/ProviderRegistry.d.ts +74 -0
  303. package/dist/mjs/staticModels/ProviderRegistry.js +169 -0
  304. package/dist/mjs/staticModels/StaticModel.d.ts +8 -0
  305. package/dist/mjs/staticModels/StaticModel.js +30 -0
  306. package/dist/mjs/staticModels/Superpro.d.ts +16 -0
  307. package/dist/mjs/staticModels/Superpro.js +23 -0
  308. package/dist/mjs/staticModels/SuperproToken.d.ts +48 -0
  309. package/dist/mjs/staticModels/SuperproToken.js +136 -0
  310. package/dist/mjs/staticModels/TeeOffers.d.ts +115 -0
  311. package/dist/mjs/staticModels/TeeOffers.js +309 -0
  312. package/dist/mjs/store.d.ts +15 -0
  313. package/dist/mjs/store.js +15 -0
  314. package/dist/mjs/tee/QuoteParser.d.ts +27 -0
  315. package/dist/mjs/tee/QuoteParser.js +162 -0
  316. package/dist/mjs/tee/QuoteValidator.d.ts +38 -0
  317. package/dist/mjs/tee/QuoteValidator.js +384 -0
  318. package/dist/mjs/tee/errors.d.ts +6 -0
  319. package/dist/mjs/tee/errors.js +7 -0
  320. package/dist/mjs/tee/helpers.d.ts +14 -0
  321. package/dist/mjs/tee/helpers.js +115 -0
  322. package/dist/mjs/tee/interface.d.ts +63 -0
  323. package/dist/mjs/tee/interface.js +2 -0
  324. package/dist/mjs/tee/statuses.d.ts +21 -0
  325. package/dist/mjs/tee/statuses.js +25 -0
  326. package/dist/mjs/tee/types.d.ts +80 -0
  327. package/dist/mjs/tee/types.js +2 -0
  328. package/dist/mjs/types/Compressor.d.ts +5 -0
  329. package/dist/mjs/types/Compressor.js +2 -0
  330. package/dist/mjs/types/Consensus.d.ts +60 -0
  331. package/dist/mjs/types/Consensus.js +16 -0
  332. package/dist/mjs/types/DepositInfo.d.ts +6 -0
  333. package/dist/mjs/types/DepositInfo.js +2 -0
  334. package/dist/mjs/types/EtlModel.d.ts +2 -0
  335. package/dist/mjs/types/EtlModel.js +2 -0
  336. package/dist/mjs/types/Events.d.ts +34 -0
  337. package/dist/mjs/types/Events.js +2 -0
  338. package/dist/mjs/types/HardwareInfo.d.ts +6 -0
  339. package/dist/mjs/types/HardwareInfo.js +2 -0
  340. package/dist/mjs/types/Marks.d.ts +9 -0
  341. package/dist/mjs/types/Marks.js +7 -0
  342. package/dist/mjs/types/Offer.d.ts +33 -0
  343. package/dist/mjs/types/Offer.js +14 -0
  344. package/dist/mjs/types/OptionInfo.d.ts +8 -0
  345. package/dist/mjs/types/OptionInfo.js +2 -0
  346. package/dist/mjs/types/Order.d.ts +44 -0
  347. package/dist/mjs/types/Order.js +12 -0
  348. package/dist/mjs/types/OrderUsage.d.ts +26 -0
  349. package/dist/mjs/types/OrderUsage.js +2 -0
  350. package/dist/mjs/types/Origins.d.ts +6 -0
  351. package/dist/mjs/types/Origins.js +2 -0
  352. package/dist/mjs/types/Provider.d.ts +7 -0
  353. package/dist/mjs/types/Provider.js +2 -0
  354. package/dist/mjs/types/ResourceLoader.d.ts +28 -0
  355. package/dist/mjs/types/ResourceLoader.js +2 -0
  356. package/dist/mjs/types/SlotInfo.d.ts +6 -0
  357. package/dist/mjs/types/SlotInfo.js +2 -0
  358. package/dist/mjs/types/SlotUsage.d.ts +11 -0
  359. package/dist/mjs/types/SlotUsage.js +6 -0
  360. package/dist/mjs/types/Superpro.d.ts +9 -0
  361. package/dist/mjs/types/Superpro.js +11 -0
  362. package/dist/mjs/types/TeeOfferInfo.d.ts +10 -0
  363. package/dist/mjs/types/TeeOfferInfo.js +2 -0
  364. package/dist/mjs/types/TeeOfferOption.d.ts +13 -0
  365. package/dist/mjs/types/TeeOfferOption.js +2 -0
  366. package/dist/mjs/types/TeeOfferSlot.d.ts +8 -0
  367. package/dist/mjs/types/TeeOfferSlot.js +2 -0
  368. package/dist/mjs/types/ValueOfferSlot.d.ts +16 -0
  369. package/dist/mjs/types/ValueOfferSlot.js +2 -0
  370. package/dist/mjs/types/Web3.d.ts +62 -0
  371. package/dist/mjs/types/Web3.js +2 -0
  372. package/dist/mjs/types/blockchainConnector/StorageAccess.d.ts +8 -0
  373. package/dist/mjs/types/blockchainConnector/StorageAccess.js +2 -0
  374. package/dist/mjs/types/index.d.ts +22 -0
  375. package/dist/mjs/types/index.js +23 -0
  376. package/dist/mjs/types/storage/StorageAccess.d.ts +7 -0
  377. package/dist/mjs/types/storage/StorageAccess.js +2 -0
  378. package/dist/mjs/types/storage/StorageFileAccess.d.ts +5 -0
  379. package/dist/mjs/types/storage/StorageFileAccess.js +2 -0
  380. package/dist/mjs/types/storage/StorageObject.d.ts +8 -0
  381. package/dist/mjs/types/storage/StorageObject.js +2 -0
  382. package/dist/mjs/utils/Monitoring.d.ts +11 -0
  383. package/dist/mjs/utils/Monitoring.js +42 -0
  384. package/dist/mjs/utils/NonceTracker.d.ts +19 -0
  385. package/dist/mjs/utils/NonceTracker.js +73 -0
  386. package/dist/mjs/utils/PubSub.d.ts +9 -0
  387. package/dist/mjs/utils/PubSub.js +32 -0
  388. package/dist/mjs/utils/TxManager.d.ts +25 -0
  389. package/dist/mjs/utils/TxManager.js +162 -0
  390. package/dist/mjs/utils/compressors/GzipCompressor.d.ts +8 -0
  391. package/dist/mjs/utils/compressors/GzipCompressor.js +15 -0
  392. package/dist/mjs/utils/compressors/UncompressedCompressor.d.ts +8 -0
  393. package/dist/mjs/utils/compressors/UncompressedCompressor.js +13 -0
  394. package/dist/mjs/utils/compressors/index.d.ts +2 -0
  395. package/dist/mjs/utils/compressors/index.js +3 -0
  396. package/dist/mjs/utils/helper.d.ts +44 -0
  397. package/dist/mjs/utils/helper.js +258 -0
  398. package/dist/mjs/utils/helpers/getStreamChunks.d.ts +9 -0
  399. package/dist/mjs/utils/helpers/getStreamChunks.js +31 -0
  400. package/dist/mjs/utils/helpers/index.d.ts +1 -0
  401. package/dist/mjs/utils/helpers/index.js +2 -0
  402. package/dist/mjs/utils/helpers/tryWithInterval.d.ts +13 -0
  403. package/dist/mjs/utils/helpers/tryWithInterval.js +35 -0
  404. package/dist/mjs/utils/resourceLoaders/BaseResourceLoader.d.ts +10 -0
  405. package/dist/mjs/utils/resourceLoaders/BaseResourceLoader.js +10 -0
  406. package/dist/mjs/utils/resourceLoaders/StorageProviderLoader.d.ts +18 -0
  407. package/dist/mjs/utils/resourceLoaders/StorageProviderLoader.js +53 -0
  408. package/dist/mjs/utils/resourceLoaders/UrlResourceLoader.d.ts +9 -0
  409. package/dist/mjs/utils/resourceLoaders/UrlResourceLoader.js +44 -0
  410. package/dist/mjs/utils/resourceLoaders/getResourceLoader.d.ts +5 -0
  411. package/dist/mjs/utils/resourceLoaders/getResourceLoader.js +11 -0
  412. package/dist/mjs/utils/resourceLoaders/index.d.ts +1 -0
  413. package/dist/mjs/utils/resourceLoaders/index.js +2 -0
  414. package/package.json +16 -18
  415. package/build/TIIGenerator.js +0 -261
  416. package/build/analytics/Analytics.js +0 -74
  417. package/build/analytics/eventProviders/BrowserEventProvider.js +0 -32
  418. package/build/analytics/eventProviders/EventProvider.js +0 -14
  419. package/build/analytics/eventProviders/NodeEventProvider.js +0 -48
  420. package/build/analytics/transports/AxiosTransport.js +0 -72
  421. package/build/analytics/transports/FetchTransport.js +0 -42
  422. package/build/connectors/BaseConnector.js +0 -53
  423. package/build/connectors/BlockchainConnector.js +0 -358
  424. package/build/connectors/BlockchainEventsListener.js +0 -114
  425. package/build/crypto/Crypto.js +0 -119
  426. package/build/crypto/index.d.ts +0 -2
  427. package/build/crypto/nodejs/AES.js +0 -94
  428. package/build/crypto/nodejs/ARIA.js +0 -93
  429. package/build/crypto/nodejs/ECIES.js +0 -69
  430. package/build/crypto/nodejs/NativeCrypto.js +0 -183
  431. package/build/crypto/nodejs/RSA-Hybrid.js +0 -95
  432. package/build/index.d.ts +0 -79
  433. package/build/index.js +0 -142
  434. package/build/models/EtlModel.js +0 -138
  435. package/build/models/Offer.js +0 -407
  436. package/build/models/Order.js +0 -577
  437. package/build/models/Provider.js +0 -137
  438. package/build/models/TCB.js +0 -135
  439. package/build/models/TeeOffer.js +0 -600
  440. package/build/models/index.d.ts +0 -5
  441. package/build/models/index.js +0 -17
  442. package/build/polyfills.js +0 -7
  443. package/build/proto/Compression.js +0 -132
  444. package/build/proto/TRI.js +0 -293
  445. package/build/proto/TeeProperties.js +0 -401
  446. package/build/providers/storage/ChunksDownloadDecorator.js +0 -177
  447. package/build/providers/storage/S3StorageProvider.js +0 -219
  448. package/build/providers/storage/StorageAdapter.js +0 -323
  449. package/build/providers/storage/StorageContentWriter.js +0 -183
  450. package/build/providers/storage/StorageKeyValueAdapter.js +0 -158
  451. package/build/providers/storage/StorageMetadataReader.js +0 -68
  452. package/build/providers/storage/StorjAdapter.js +0 -74
  453. package/build/providers/storage/StorjStorageProvider.js +0 -207
  454. package/build/providers/storage/getStorageProvider.d.ts +0 -4
  455. package/build/providers/storage/getStorageProvider.js +0 -20
  456. package/build/staticModels/ActiveOffers.js +0 -52
  457. package/build/staticModels/ActiveOrders.js +0 -91
  458. package/build/staticModels/Consensus.js +0 -247
  459. package/build/staticModels/Deposits.js +0 -214
  460. package/build/staticModels/Marks.js +0 -43
  461. package/build/staticModels/ModelPackager.js +0 -62
  462. package/build/staticModels/Offers.js +0 -207
  463. package/build/staticModels/Orders.js +0 -502
  464. package/build/staticModels/ProviderRegistry.js +0 -192
  465. package/build/staticModels/StaticModel.js +0 -46
  466. package/build/staticModels/Superpro.js +0 -24
  467. package/build/staticModels/SuperproToken.js +0 -154
  468. package/build/staticModels/TeeOffers.js +0 -344
  469. package/build/store.js +0 -17
  470. package/build/tee/QuoteParser.js +0 -189
  471. package/build/tee/QuoteValidator.js +0 -414
  472. package/build/tee/helpers.js +0 -119
  473. package/build/types/HardwareInfo.d.ts +0 -6
  474. package/build/types/Offer.js +0 -17
  475. package/build/types/Order.js +0 -60
  476. package/build/types/TeeOfferSlot.d.ts +0 -8
  477. package/build/types/index.d.ts +0 -22
  478. package/build/types/index.js +0 -39
  479. package/build/utils/Monitoring.js +0 -48
  480. package/build/utils/NonceTracker.js +0 -90
  481. package/build/utils/PubSub.js +0 -37
  482. package/build/utils/TxManager.js +0 -179
  483. package/build/utils/compressors/GzipCompressor.js +0 -29
  484. package/build/utils/compressors/UncompressedCompressor.js +0 -17
  485. package/build/utils/compressors/index.d.ts +0 -2
  486. package/build/utils/helper.js +0 -286
  487. package/build/utils/helpers/getStreamChunks.js +0 -74
  488. package/build/utils/helpers/index.d.ts +0 -1
  489. package/build/utils/helpers/tryWithInterval.js +0 -48
  490. package/build/utils/resourceLoaders/BaseResourceLoader.js +0 -51
  491. package/build/utils/resourceLoaders/StorageProviderLoader.js +0 -69
  492. package/build/utils/resourceLoaders/UrlResourceLoader.js +0 -64
  493. package/build/utils/resourceLoaders/getResourceLoader.js +0 -15
  494. package/build/utils/resourceLoaders/index.d.ts +0 -1
  495. /package/{build → dist/cjs}/analytics/AnalyticsError.d.ts +0 -0
  496. /package/{build → dist/cjs}/analytics/eventProviders/EventProvider.d.ts +0 -0
  497. /package/{build → dist/cjs}/config.d.ts +0 -0
  498. /package/{build → dist/cjs}/constants.d.ts +0 -0
  499. /package/{build → dist/cjs}/crypto/Crypto.d.ts +0 -0
  500. /package/{build → dist/cjs}/crypto/nodejs/AES.d.ts +0 -0
  501. /package/{build → dist/cjs}/crypto/nodejs/ARIA.d.ts +0 -0
  502. /package/{build → dist/cjs}/crypto/nodejs/ECIES.d.ts +0 -0
  503. /package/{build → dist/cjs}/crypto/nodejs/RSA-Hybrid.d.ts +0 -0
  504. /package/{build → dist/cjs}/logger.d.ts +0 -0
  505. /package/{build → dist/cjs}/polyfills.d.ts +0 -0
  506. /package/{build → dist/cjs}/providers/storage/types.d.ts +0 -0
  507. /package/{build → dist/cjs}/staticModels/ModelPackager.d.ts +0 -0
  508. /package/{build → dist/cjs}/store.d.ts +0 -0
  509. /package/{build → dist/cjs}/tee/errors.d.ts +0 -0
  510. /package/{build → dist/cjs}/tee/helpers.d.ts +0 -0
  511. /package/{build → dist/cjs}/tee/statuses.d.ts +0 -0
  512. /package/{build → dist/cjs}/types/Compressor.d.ts +0 -0
  513. /package/{build → dist/cjs}/types/EtlModel.d.ts +0 -0
  514. /package/{build → dist/cjs}/types/Marks.d.ts +0 -0
  515. /package/{build → dist/cjs}/types/OptionInfo.d.ts +0 -0
  516. /package/{build → dist/cjs}/types/Origins.d.ts +0 -0
  517. /package/{build → dist/cjs}/types/Provider.d.ts +0 -0
  518. /package/{build → dist/cjs}/types/SlotInfo.d.ts +0 -0
  519. /package/{build → dist/cjs}/types/Superpro.d.ts +0 -0
  520. /package/{build → dist/cjs}/types/Web3.d.ts +0 -0
  521. /package/{build → dist/cjs}/types/storage/StorageAccess.d.ts +0 -0
  522. /package/{build → dist/cjs}/types/storage/StorageObject.d.ts +0 -0
  523. /package/{build → dist/cjs}/utils/Monitoring.d.ts +0 -0
  524. /package/{build → dist/cjs}/utils/NonceTracker.d.ts +0 -0
  525. /package/{build → dist/cjs}/utils/PubSub.d.ts +0 -0
  526. /package/{build → dist/cjs}/utils/helpers/getStreamChunks.d.ts +0 -0
  527. /package/{build → dist/cjs}/utils/helpers/tryWithInterval.d.ts +0 -0
@@ -0,0 +1,309 @@
1
+ import rootLogger from '../logger.js';
2
+ import { checkIfActionAccountInitialized, cleanWeb3Data, convertBigIntToString, convertTeeOfferOptionFromRaw, packDeviceId, unpackSlotInfo, convertOptionInfoToRaw, } from '../utils/helper.js';
3
+ import { formatBytes32String, parseBytes32String } from 'ethers/lib/utils.js';
4
+ import { OfferType, } from '../types/index.js';
5
+ import { BlockchainConnector, BlockchainEventsListener } from '../connectors/index.js';
6
+ import Superpro from './Superpro.js';
7
+ import TxManager from '../utils/TxManager.js';
8
+ import StaticModel from './StaticModel.js';
9
+ class TeeOffers {
10
+ static coresDenominator;
11
+ static logger = rootLogger.child({ className: 'TeeOffers' });
12
+ static teeOffers = [];
13
+ static get address() {
14
+ return Superpro.address;
15
+ }
16
+ static async packHardwareInfo(hw) {
17
+ const denominator = await TeeOffers.getDenominator();
18
+ hw.slotInfo.cpuCores *= denominator;
19
+ hw.slotInfo.gpuCores *= denominator;
20
+ return hw;
21
+ }
22
+ static async unpackHardwareInfo(hw) {
23
+ const coresDenominator = await TeeOffers.getDenominator();
24
+ hw.slotInfo = unpackSlotInfo(hw.slotInfo, coresDenominator);
25
+ return hw;
26
+ }
27
+ static async getDenominator() {
28
+ if (!this.coresDenominator) {
29
+ const contract = BlockchainConnector.getInstance().getContract();
30
+ this.coresDenominator = Number(await contract.methods.getCpuDenominator().call());
31
+ }
32
+ return this.coresDenominator;
33
+ }
34
+ /**
35
+ * Function for fetching list of all TEE offers addresses
36
+ */
37
+ static async getAll() {
38
+ const contract = BlockchainConnector.getInstance().getContract();
39
+ const count = Number(await contract.methods.getOffersTotalCount().call());
40
+ const teeOfffersSet = new Set(this.teeOffers);
41
+ for (let offerId = teeOfffersSet.size + 1; offerId <= count; ++offerId) {
42
+ const offerType = (await contract.methods.getOfferType(offerId).call()).toString();
43
+ if (offerType === OfferType.TeeOffer) {
44
+ teeOfffersSet.add(offerId.toString());
45
+ }
46
+ }
47
+ this.teeOffers = Array.from(teeOfffersSet);
48
+ return this.teeOffers;
49
+ }
50
+ /**
51
+ * Creates new TEE offer
52
+ * @param providerAuthorityAccount - address of authority account of provider
53
+ * @param teeOfferInfo - data of new TEE offer
54
+ * @param transactionOptions - object what contains alternative action account or gas limit (optional)
55
+ */
56
+ static async create(providerAuthorityAccount, teeOfferInfo,
57
+ // slotInfo: SlotInfo,
58
+ // optionInfo: OptionInfo,
59
+ externalId = 'default', enabled = true, transactionOptions) {
60
+ const contract = BlockchainConnector.getInstance().getContract();
61
+ checkIfActionAccountInitialized(transactionOptions);
62
+ // Converts offer info to array of arrays (used in blockchain)
63
+ teeOfferInfo.hardwareInfo = await TeeOffers.packHardwareInfo(teeOfferInfo.hardwareInfo);
64
+ const formattedExternalId = formatBytes32String(externalId);
65
+ await TxManager.execute(contract.methods.createTeeOffer(providerAuthorityAccount, teeOfferInfo, teeOfferInfo.hardwareInfo.slotInfo, convertOptionInfoToRaw(teeOfferInfo.hardwareInfo.optionInfo), formattedExternalId, enabled), transactionOptions);
66
+ }
67
+ static async getByExternalId(filter, fromBlock, toBlock) {
68
+ const founded = await StaticModel.findItemsById('TeeOfferCreated', filter, fromBlock, toBlock);
69
+ if (!founded)
70
+ return null;
71
+ return founded;
72
+ }
73
+ /**
74
+ * Function for fetching TEE offer id by TEE deviceId
75
+ * @param deviceId - unque TEE device id (unparsed, from blockchain)
76
+ * @returns TEE offer id
77
+ */
78
+ static getByDeviceId(deviceId) {
79
+ const contract = BlockchainConnector.getInstance().getContract();
80
+ const fromattedDeviceId = packDeviceId(deviceId);
81
+ return contract.methods.getTeeOfferByDeviceId(fromattedDeviceId).call();
82
+ }
83
+ /**
84
+ * Function for fetching total count of tee offer slots
85
+ */
86
+ static async getSlotsCount() {
87
+ const contract = BlockchainConnector.getInstance().getContract();
88
+ return Number(await contract.methods.getTeeOffersSlotsCountTotal().call());
89
+ }
90
+ /**
91
+ * Function for fetching whether tee offer option exists or not
92
+ * @param optionId - Option ID
93
+ */
94
+ static isOptionExists(optionId) {
95
+ const contract = BlockchainConnector.getInstance().getContract();
96
+ return contract.methods.isOptionExists(optionId).call();
97
+ }
98
+ /**
99
+ * Function for fetching total count of options
100
+ */
101
+ static async getOptionsCount() {
102
+ const contract = BlockchainConnector.getInstance().getContract();
103
+ return Number(await contract.methods.getOptionsCount().call());
104
+ }
105
+ /**
106
+ * Function for fetching tee offer option by id
107
+ * @param optionId - Option ID
108
+ */
109
+ static async getOptionById(optionId) {
110
+ const contract = BlockchainConnector.getInstance().getContract();
111
+ return await contract.methods
112
+ .getOptionById(optionId)
113
+ .call()
114
+ .then((option) => convertTeeOfferOptionFromRaw(option));
115
+ }
116
+ static async getSlotByExternalId(filter, fromBlock, toBlock) {
117
+ const founded = await StaticModel.findItemsById('TeeSlotAdded', filter, fromBlock, toBlock);
118
+ if (!founded)
119
+ return null;
120
+ return founded;
121
+ }
122
+ static async getOptionByExternalId(filter, fromBlock, toBlock) {
123
+ const founded = await StaticModel.findItemsById('OptionAdded', filter, fromBlock, toBlock);
124
+ if (!founded)
125
+ return null;
126
+ return founded;
127
+ }
128
+ /**
129
+ * Function for adding event listeners on onSlotAdded event in contract
130
+ * @param creator - creator address
131
+ * @param callback - function for processing created order
132
+ * @returns unsubscribe - unsubscribe function from event
133
+ */
134
+ static onSlotAdded(callback, creator) {
135
+ const contract = BlockchainEventsListener.getInstance().getContract();
136
+ const logger = this.logger.child({ method: 'onTeeSlotAdded' });
137
+ const subscription = contract.events.TeeSlotAdded();
138
+ subscription.on('data', (event) => {
139
+ const parsedEvent = cleanWeb3Data(event.returnValues);
140
+ if (creator && parsedEvent.creator != creator) {
141
+ return;
142
+ }
143
+ callback(parsedEvent.creator, parsedEvent.offerId, parsedEvent.slotId, parseBytes32String(parsedEvent.externalId), {
144
+ index: Number(event.blockNumber),
145
+ hash: event.blockHash,
146
+ });
147
+ });
148
+ subscription.on('error', (error) => {
149
+ logger.warn(error);
150
+ });
151
+ return () => subscription.unsubscribe();
152
+ }
153
+ /**
154
+ * Function for adding event listeners on onSlotUpdated event in contract
155
+ * @param callback - function for processing created order
156
+ * @returns unsubscribe - unsubscribe function from event
157
+ */
158
+ static onSlotUpdated(callback) {
159
+ const contract = BlockchainEventsListener.getInstance().getContract();
160
+ const logger = this.logger.child({ method: 'onTeeSlotUpdated' });
161
+ const subscription = contract.events.TeeSlotUpdated();
162
+ subscription.on('data', (event) => {
163
+ const parsedEvent = cleanWeb3Data(event.returnValues);
164
+ callback(parsedEvent.offerId, parsedEvent.slotId, {
165
+ index: Number(event.blockNumber),
166
+ hash: event.blockHash,
167
+ });
168
+ });
169
+ subscription.on('error', (error) => {
170
+ logger.warn(error);
171
+ });
172
+ return () => subscription.unsubscribe();
173
+ }
174
+ /**
175
+ * Function for adding event listeners on onSlotDeleted event in contract
176
+ * @param callback - function for processing created order
177
+ * @returns unsubscribe - unsubscribe function from event
178
+ */
179
+ static onSlotDeleted(callback) {
180
+ const contract = BlockchainEventsListener.getInstance().getContract();
181
+ const logger = this.logger.child({ method: 'onTeeSlotDeleted' });
182
+ const subscription = contract.events.TeeSlotDeleted();
183
+ subscription.on('data', (event) => {
184
+ const parsedEvent = cleanWeb3Data(event.returnValues);
185
+ callback(parsedEvent.offerId, parsedEvent.slotId, {
186
+ index: Number(event.blockNumber),
187
+ hash: event.blockHash,
188
+ });
189
+ });
190
+ subscription.on('error', (error) => {
191
+ logger.warn(error);
192
+ });
193
+ return () => subscription.unsubscribe();
194
+ }
195
+ /**
196
+ * Function for adding event listeners on OptionAdded event in contract
197
+ * @param creator - creator address
198
+ * @param callback - function for processing created order
199
+ * @returns unsubscribe - unsubscribe function from event
200
+ */
201
+ static onOptionAdded(callback, creator) {
202
+ const contract = BlockchainEventsListener.getInstance().getContract();
203
+ const logger = this.logger.child({ method: 'onTeeOptionAddedCallback' });
204
+ const subscription = contract.events.OptionAdded();
205
+ subscription.on('data', (event) => {
206
+ const parsedEvent = cleanWeb3Data(event.returnValues);
207
+ if (creator && parsedEvent.creator != creator) {
208
+ return;
209
+ }
210
+ callback(parsedEvent.creator, parsedEvent.teeOfferId, parsedEvent.optionId, parseBytes32String(parsedEvent.externalId), {
211
+ index: Number(event.blockNumber),
212
+ hash: event.blockHash,
213
+ });
214
+ });
215
+ subscription.on('error', (error) => {
216
+ logger.warn(error);
217
+ });
218
+ return () => subscription.unsubscribe();
219
+ }
220
+ /**
221
+ * Function for adding event listeners on OptionUpdated event in contract
222
+ * @param teeOfferId - tee offer id
223
+ * @param callback - function for processing created order
224
+ * @returns unsubscribe - unsubscribe function from event
225
+ */
226
+ static onOptionUpdated(callback, teeOfferId) {
227
+ const contract = BlockchainEventsListener.getInstance().getContract();
228
+ const logger = this.logger.child({ method: 'onTeeOptionUpdatedCallback' });
229
+ const subscription = contract.events.OptionUpdated();
230
+ subscription.on('data', (event) => {
231
+ const parsedEvent = cleanWeb3Data(event.returnValues);
232
+ if (teeOfferId && event.returnValues.teeOfferId != convertBigIntToString(teeOfferId)) {
233
+ return;
234
+ }
235
+ callback(parsedEvent.teeOfferId, parsedEvent.optionId, {
236
+ index: Number(event.blockNumber),
237
+ hash: event.blockHash,
238
+ });
239
+ });
240
+ subscription.on('error', (error) => {
241
+ logger.warn(error);
242
+ });
243
+ return () => subscription.unsubscribe();
244
+ }
245
+ /**
246
+ * Function for adding event listeners on OptionDeleted event in contract
247
+ * @param teeOfferId - tee offer id
248
+ * @param callback - function for processing created order
249
+ * @returns unsubscribe - unsubscribe function from event
250
+ */
251
+ static onOptionDeleted(callback, teeOfferId) {
252
+ const contract = BlockchainEventsListener.getInstance().getContract();
253
+ const logger = this.logger.child({ method: 'onTeeOptionDeletedCallback' });
254
+ const subscription = contract.events.OptionDeleted();
255
+ subscription.on('data', (event) => {
256
+ const parsedEvent = cleanWeb3Data(event.returnValues);
257
+ if (teeOfferId && parsedEvent.teeOfferId != convertBigIntToString(teeOfferId)) {
258
+ return;
259
+ }
260
+ callback(parsedEvent.teeOfferId, parsedEvent.optionId, {
261
+ index: Number(event.blockNumber),
262
+ hash: event.blockHash,
263
+ });
264
+ });
265
+ subscription.on('error', (error) => {
266
+ logger.warn(error);
267
+ });
268
+ return () => subscription.unsubscribe();
269
+ }
270
+ /**
271
+ * Function for adding event listeners on TEE offer created event in TEE offers factory contract
272
+ * @param callback - function for processing created TEE offer
273
+ * @returns unsubscribe - unsubscribe function from event
274
+ */
275
+ static onCreated(callback) {
276
+ const contract = BlockchainEventsListener.getInstance().getContract();
277
+ const logger = this.logger.child({ method: 'onTeeOfferCreated' });
278
+ const subscription = contract.events.TeeOfferCreated();
279
+ subscription.on('data', (event) => {
280
+ const parsedEvent = cleanWeb3Data(event.returnValues);
281
+ callback(parsedEvent.offerId, parsedEvent.creator, parseBytes32String(parsedEvent.externalId), {
282
+ index: Number(event.blockNumber),
283
+ hash: event.blockHash,
284
+ });
285
+ });
286
+ subscription.on('error', (error) => {
287
+ logger.warn(error);
288
+ });
289
+ return () => subscription.unsubscribe();
290
+ }
291
+ static onViolationRateChanged(callback) {
292
+ const contract = BlockchainEventsListener.getInstance().getContract();
293
+ const logger = this.logger.child({ method: 'onTeeOfferViolationRateChanged' });
294
+ const subscription = contract.events.TeeOfferViolationRateChanged();
295
+ subscription.on('data', (event) => {
296
+ const parsedEvent = cleanWeb3Data(event.returnValues);
297
+ callback(parsedEvent.offerId, parsedEvent.providerAuth, parsedEvent.violationRate, {
298
+ index: Number(event.blockNumber),
299
+ hash: event.blockHash,
300
+ });
301
+ });
302
+ subscription.on('error', (error) => {
303
+ logger.warn(error);
304
+ });
305
+ return () => subscription.unsubscribe();
306
+ }
307
+ }
308
+ export default TeeOffers;
309
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVlT2ZmZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0YXRpY01vZGVscy9UZWVPZmZlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxVQUFVLE1BQU0sY0FBYyxDQUFDO0FBQ3RDLE9BQU8sRUFDTCwrQkFBK0IsRUFDL0IsYUFBYSxFQUNiLHFCQUFxQixFQUNyQiw0QkFBNEIsRUFDNUIsWUFBWSxFQUNaLGNBQWMsRUFDZCxzQkFBc0IsR0FDdkIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQWEsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RixPQUFPLEVBS0wsU0FBUyxHQU9WLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkYsT0FBTyxRQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBRTlDLE9BQU8sV0FBVyxNQUFNLGtCQUFrQixDQUFDO0FBRTNDLE1BQU0sU0FBUztJQUNMLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBVTtJQUVqQyxNQUFNLENBQVUsTUFBTSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUV2RSxNQUFNLENBQUMsU0FBUyxHQUFtQixFQUFFLENBQUM7SUFFdEMsTUFBTSxLQUFLLE9BQU87UUFDdkIsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO0lBQzFCLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQWdCO1FBQ25ELE1BQU0sV0FBVyxHQUFHLE1BQU0sU0FBUyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JELEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLFdBQVcsQ0FBQztRQUNwQyxFQUFF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
@@ -0,0 +1,15 @@
1
+ import Web3 from 'web3';
2
+ export type Store = {
3
+ web3Wss?: Web3;
4
+ web3Https?: Web3;
5
+ actionAccount?: string;
6
+ gasLimit: bigint;
7
+ gasLimitMultiplier: number;
8
+ gasPriceMultiplier: number;
9
+ gasPrice?: bigint;
10
+ txConcurrency: number;
11
+ txIntervalMs: number;
12
+ keys: Record<string, string>;
13
+ };
14
+ declare const store: Store;
15
+ export default store;
@@ -0,0 +1,15 @@
1
+ import { defaultGasLimitMultiplier, defaultGasPriceMultiplier, defaultGasLimit, txIntervalMs, txConcurrency, } from './constants.js';
2
+ const store = {
3
+ web3Wss: undefined,
4
+ web3Https: undefined,
5
+ actionAccount: undefined,
6
+ gasLimit: defaultGasLimit,
7
+ gasLimitMultiplier: defaultGasLimitMultiplier,
8
+ gasPriceMultiplier: defaultGasPriceMultiplier,
9
+ gasPrice: undefined,
10
+ txConcurrency: txConcurrency,
11
+ txIntervalMs: txIntervalMs,
12
+ keys: {},
13
+ };
14
+ export default store;
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsZUFBZSxFQUNmLFlBQVksRUFDWixhQUFhLEdBQ2QsTUFBTSxnQkFBZ0IsQ0FBQztBQWV4QixNQUFNLEtBQUssR0FBVTtJQUNuQixPQUFPLEVBQUUsU0FBUztJQUNsQixTQUFTLEVBQUUsU0FBUztJQUNwQixhQUFhLEVBQUUsU0FBUztJQUN4QixRQUFRLEVBQUUsZUFBZTtJQUN6QixrQkFBa0IsRUFBRSx5QkFBeUI7SUFDN0Msa0JBQWtCLEVBQUUseUJBQXlCO0lBQzdDLFFBQVEsRUFBRSxTQUFTO0lBQ25CLGFBQWEsRUFBRSxhQUFhO0lBQzVCLFlBQVksRUFBRSxZQUFZO0lBQzFCLElBQUksRUFBRSxFQUFFO0NBQ1QsQ0FBQztBQUVGLGVBQWUsS0FBSyxDQUFDIn0=
@@ -0,0 +1,27 @@
1
+ import { BinaryType, TeeSgxQuoteDataType, TeeSgxReportDataType } from './types.js';
2
+ export declare class TeeSgxParser {
3
+ static readonly quoteHeaderSize = 48;
4
+ static readonly pceSvnOffset = 10;
5
+ static readonly reportSize = 384;
6
+ static readonly userDataOffset = 28;
7
+ static readonly userDataSize = 20;
8
+ static readonly cpuSvnSize = 16;
9
+ static readonly reportMrEnclaveOffset = 64;
10
+ static readonly reportMrEnclaveSize = 32;
11
+ static readonly reportMrSignerOffset: number;
12
+ static readonly reportMrSignerSize = 32;
13
+ static readonly reportIsvProdIdOffset: number;
14
+ static readonly reportIsvProdIdSize = 2;
15
+ static readonly reportIsvSvnOffset: number;
16
+ static readonly reportIsvSvnSize = 2;
17
+ static readonly reportDataOffset: number;
18
+ static readonly reportUserDataSize = 64;
19
+ static readonly reportUserDataSHA256Size = 32;
20
+ static readonly ecdsaP256SignatureSize = 64;
21
+ static readonly ecdsaP256PublicKeySize = 64;
22
+ private getDataAndAdvance;
23
+ private extractRS;
24
+ private parsePem;
25
+ parseQuote(data: BinaryType): TeeSgxQuoteDataType;
26
+ parseReport(data: BinaryType): TeeSgxReportDataType;
27
+ }
@@ -0,0 +1,162 @@
1
+ import { Certificate } from '@fidm/x509';
2
+ import * as asn1js from 'asn1js';
3
+ import * as pkijs from 'pkijs';
4
+ import { Buffer as Blob } from 'buffer';
5
+ import { TeeQuoteParserError } from './errors.js';
6
+ import { splitChain, Signature } from './helpers.js';
7
+ export class TeeSgxParser {
8
+ static quoteHeaderSize = 48;
9
+ static pceSvnOffset = 10;
10
+ static reportSize = 384;
11
+ static userDataOffset = 28;
12
+ static userDataSize = 20;
13
+ static cpuSvnSize = 16;
14
+ static reportMrEnclaveOffset = 64;
15
+ static reportMrEnclaveSize = 32;
16
+ static reportMrSignerOffset = TeeSgxParser.reportMrEnclaveOffset + TeeSgxParser.reportMrEnclaveSize + /* reserved */ 32;
17
+ static reportMrSignerSize = 32;
18
+ static reportIsvProdIdOffset = TeeSgxParser.reportMrSignerOffset + TeeSgxParser.reportMrSignerSize + /* reserved */ 96;
19
+ static reportIsvProdIdSize = 2;
20
+ static reportIsvSvnOffset = TeeSgxParser.reportIsvProdIdOffset + TeeSgxParser.reportIsvProdIdSize;
21
+ static reportIsvSvnSize = 2;
22
+ static reportDataOffset = TeeSgxParser.reportIsvSvnOffset + TeeSgxParser.reportIsvSvnSize + /* reserved */ 60;
23
+ static reportUserDataSize = 64;
24
+ static reportUserDataSHA256Size = 32; /* 64 in report, but we need 32 only for sha256 hash */
25
+ static ecdsaP256SignatureSize = 64;
26
+ static ecdsaP256PublicKeySize = 64;
27
+ getDataAndAdvance(blob, size) {
28
+ const buf = Blob.from(blob.data.subarray(0, size));
29
+ blob.data = Blob.from(blob.data.subarray(size));
30
+ return buf;
31
+ }
32
+ extractRS(cert) {
33
+ const derSignature = Buffer.from(cert.signatureValue.valueBlock.valueHexView).toString('hex');
34
+ const parsedSignature = Signature.importFromDER(derSignature);
35
+ return {
36
+ r: parsedSignature.r,
37
+ s: parsedSignature.s,
38
+ derSignature,
39
+ };
40
+ }
41
+ parsePem(pem) {
42
+ const cert = Certificate.fromPEM(Buffer.from(pem));
43
+ const asn1Certificate = asn1js.fromBER(cert.raw);
44
+ const certificate = new pkijs.Certificate({ schema: asn1Certificate.result });
45
+ const tbs = certificate.tbsView;
46
+ const { r, s } = this.extractRS(certificate);
47
+ const publicKey = cert.publicKey.keyRaw.toString('hex').slice(2);
48
+ const splitedTbs = Buffer.from(tbs).toString('hex').split(publicKey);
49
+ const x509PublicKey = '0x' + publicKey;
50
+ const x509Signature = '0x' + r + s;
51
+ return {
52
+ bodyPartOne: '0x' + splitedTbs[0],
53
+ publicKey: x509PublicKey,
54
+ bodyPartTwo: '0x' + splitedTbs[1],
55
+ signature: x509Signature,
56
+ };
57
+ }
58
+ parseQuote(data) {
59
+ const { quoteHeaderSize, pceSvnOffset, reportSize, userDataOffset, userDataSize, ecdsaP256SignatureSize, ecdsaP256PublicKeySize, } = TeeSgxParser;
60
+ if (data.length < quoteHeaderSize + reportSize) {
61
+ throw new TeeQuoteParserError('data has invalid length');
62
+ }
63
+ const quoteRemainder = { data: Blob.from(data) };
64
+ const quoteHeader = this.getDataAndAdvance(quoteRemainder, quoteHeaderSize);
65
+ const report = this.getDataAndAdvance(quoteRemainder, reportSize);
66
+ const version = quoteHeader.readUInt16LE(0);
67
+ const attestationKeyType = quoteHeader.readUInt16LE(2);
68
+ if (attestationKeyType > 3) {
69
+ throw new TeeQuoteParserError('quote header has invalid or unsupported attestation key type');
70
+ }
71
+ const pceSvn = quoteHeader.readUInt16LE(pceSvnOffset);
72
+ const userData = quoteHeader.slice(userDataOffset, userDataOffset + userDataSize);
73
+ const quoteSignatureDateLen = quoteRemainder.data.readUInt32LE(0);
74
+ quoteRemainder.data = Blob.from(quoteRemainder.data.subarray(4));
75
+ if (quoteSignatureDateLen != quoteRemainder.data.length) {
76
+ throw new TeeQuoteParserError(`quoteSignatureDateLen has invalid length: ${quoteRemainder.data.length} instead of ${quoteSignatureDateLen} expected`);
77
+ }
78
+ const rawQuoteSignatureDataRemainder = {
79
+ data: this.getDataAndAdvance(quoteRemainder, quoteSignatureDateLen),
80
+ };
81
+ const isvEnclaveReportSignature = this.getDataAndAdvance(rawQuoteSignatureDataRemainder, ecdsaP256SignatureSize);
82
+ const ecdsaAttestationKey = this.getDataAndAdvance(rawQuoteSignatureDataRemainder, ecdsaP256PublicKeySize);
83
+ const qeReport = this.getDataAndAdvance(rawQuoteSignatureDataRemainder, reportSize);
84
+ const qeReportSignature = this.getDataAndAdvance(rawQuoteSignatureDataRemainder, ecdsaP256SignatureSize);
85
+ const qeAuthenticationDataSize = rawQuoteSignatureDataRemainder.data.readUInt16LE(0);
86
+ rawQuoteSignatureDataRemainder.data = Blob.from(rawQuoteSignatureDataRemainder.data.subarray(2));
87
+ if (rawQuoteSignatureDataRemainder.data.length < qeAuthenticationDataSize) {
88
+ throw new TeeQuoteParserError(`qeAuthenticationDataSize has invalid length: ${rawQuoteSignatureDataRemainder.data.length} instead of ${qeAuthenticationDataSize} expected`);
89
+ }
90
+ const qeAuthenticationData = this.getDataAndAdvance(rawQuoteSignatureDataRemainder, qeAuthenticationDataSize);
91
+ const qeCertificationDataType = rawQuoteSignatureDataRemainder.data.readUInt16LE(0);
92
+ if (qeCertificationDataType < 1 || qeCertificationDataType > 7) {
93
+ throw new TeeQuoteParserError(`certificationDataType has invalid value: ${qeCertificationDataType}`);
94
+ }
95
+ const certificationDataSize = rawQuoteSignatureDataRemainder.data.readUInt32LE(2);
96
+ const qeCertificationData = rawQuoteSignatureDataRemainder.data.subarray(2 + 4);
97
+ if (certificationDataSize != qeCertificationData.length) {
98
+ throw new TeeQuoteParserError(`certificationDataSize has invalid length: $PqeCertificationData.length} instead of ${certificationDataSize} expected`);
99
+ }
100
+ const certsPems = splitChain(qeCertificationData.toString()); // [device, platform, root]
101
+ const certsData = certsPems.map((pem) => this.parsePem(pem));
102
+ return {
103
+ rawHeader: quoteHeader,
104
+ header: {
105
+ version,
106
+ attestationKeyType,
107
+ pceSvn,
108
+ userData,
109
+ },
110
+ report,
111
+ isvEnclaveReportSignature,
112
+ ecdsaAttestationKey,
113
+ qeReport,
114
+ qeReportSignature,
115
+ qeAuthenticationData,
116
+ qeCertificationDataType,
117
+ qeCertificationData,
118
+ certificates: {
119
+ device: {
120
+ pem: certsPems[0],
121
+ x509Data: certsData[0],
122
+ },
123
+ platform: {
124
+ pem: certsPems[1],
125
+ x509Data: certsData[1],
126
+ },
127
+ root: {
128
+ pem: certsPems[2],
129
+ x509Data: certsData[2],
130
+ },
131
+ },
132
+ };
133
+ }
134
+ parseReport(data) {
135
+ const { reportSize, cpuSvnSize, reportMrEnclaveOffset, reportMrEnclaveSize, reportMrSignerOffset, reportMrSignerSize, reportIsvProdIdOffset, reportIsvProdIdSize, reportIsvSvnOffset, reportIsvSvnSize, reportDataOffset, reportUserDataSize, reportUserDataSHA256Size, } = TeeSgxParser;
136
+ if (data.length < reportSize) {
137
+ throw new TeeQuoteParserError('data has invalid length');
138
+ }
139
+ const report = Blob.from(data);
140
+ const cpuSvn = report.slice(0, cpuSvnSize).toString('hex');
141
+ const mrEnclave = report.slice(reportMrEnclaveOffset, reportMrEnclaveOffset + reportMrEnclaveSize);
142
+ const mrSigner = report.slice(reportMrSignerOffset, reportMrSignerOffset + reportMrSignerSize);
143
+ const isvProdId = report
144
+ .slice(reportIsvProdIdOffset, reportIsvProdIdOffset + reportIsvProdIdSize)
145
+ .readUInt16LE(0);
146
+ const isvSvn = report
147
+ .slice(reportIsvSvnOffset, reportIsvSvnOffset + reportIsvSvnSize)
148
+ .readUInt16LE(0);
149
+ const userData = report.slice(reportDataOffset, reportDataOffset + reportUserDataSize);
150
+ const dataHash = report.slice(reportDataOffset, reportDataOffset + reportUserDataSHA256Size);
151
+ return {
152
+ cpuSvn,
153
+ mrEnclave,
154
+ mrSigner,
155
+ isvProdId,
156
+ isvSvn,
157
+ userData,
158
+ dataHash,
159
+ };
160
+ }
161
+ }
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUXVvdGVQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVlL1F1b3RlUGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sSUFBSSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDeEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxELE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXJELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLE1BQU0sQ0FBVSxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQ3JDLE1BQU0sQ0FBVSxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ2xDLE1BQU0sQ0FBVSxVQUFVLEdBQUcsR0FBRyxDQUFDO0lBQ2pDLE1BQU0sQ0FBVSxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQ3BDLE1BQU0sQ0FBVSxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ2xDLE1BQU0sQ0FBVSxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ2hDLE1BQU0sQ0FBVSxxQkFBcUIsR0FBRyxFQUFFLENBQUM7SUFDM0MsTUFBTSxDQUFVLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztJQUN6QyxNQUFNLENBQVUsb0JBQW9CLEdBQ2xDLFlBQVksQ0FBQyxxQkFBcUIsR0FBRyxZQUFZLENBQUMsbUJBQW1CLEdBQUcsY0FBYyxDQUFDLEVBQUUsQ0FBQztJQUM1RixNQUFNLENBQVUsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0lBQ3hDLE1BQU0sQ0FBVSxxQkFBcUIsR0FDbkMsWUFBWSxDQUFDLG9CQUFvQixHQUFHLFlBQVksQ0FBQyxrQkFBa0IsR0FBRyxjQUFj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
@@ -0,0 +1,38 @@
1
+ /// <reference types="node" />
2
+ import { QuoteValidationStatuses } from './statuses.js';
3
+ export interface ValidationResult {
4
+ quoteValidationStatus: QuoteValidationStatuses;
5
+ description: string;
6
+ error?: unknown;
7
+ }
8
+ export declare class QuoteValidator {
9
+ private readonly isDefault;
10
+ private readonly baseUrl;
11
+ private readonly teeSgxParser;
12
+ private logger;
13
+ constructor(baseUrl: string);
14
+ private splitChain;
15
+ private findSequenceByOID;
16
+ private searchForSequence;
17
+ private verifyDataBySignature;
18
+ private checkValidDate;
19
+ private checkChainForIssuers;
20
+ private getCrl;
21
+ private checkCertificatesInCrl;
22
+ private getCertificates;
23
+ private verifyQeReportSignature;
24
+ private verifyQeReportData;
25
+ private verifyEnclaveReportSignature;
26
+ private validateQuoteStructure;
27
+ private getSgxExtensionData;
28
+ private getDataFromExtension;
29
+ private getTcbInfo;
30
+ private getQEIdentity;
31
+ private getQEIdentityStatus;
32
+ private getTcbStatus;
33
+ private getQuoteValidationStatus;
34
+ private getQuoteValidationStatusDescription;
35
+ validate(quoteBuffer: Buffer): Promise<ValidationResult>;
36
+ isQuoteHasUserData(quoteBuffer: Buffer, userDataBuffer: Buffer): Promise<boolean>;
37
+ private getSha256Hash;
38
+ }