@super-protocol/sdk-js 2.1.4-beta.1 → 2.1.4-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{build → dist/cjs}/TIIGenerator.js +1 -1
- package/{build → dist/cjs}/analytics/Analytics.js +1 -1
- package/{build → dist/cjs}/analytics/AnalyticsError.js +1 -1
- package/{build → dist/cjs}/analytics/eventProviders/BrowserEventProvider.js +1 -1
- package/dist/cjs/analytics/eventProviders/EventProvider.js +14 -0
- package/{build → dist/cjs}/analytics/eventProviders/NodeEventProvider.js +1 -1
- package/{build → dist/cjs}/analytics/transports/AxiosTransport.js +1 -1
- package/{build → dist/cjs}/analytics/transports/FetchTransport.js +1 -1
- package/{build → dist/cjs}/analytics/types.js +1 -1
- package/{build → dist/cjs}/config.js +1 -1
- package/{build → dist/cjs}/connectors/BaseConnector.js +1 -1
- package/{build → dist/cjs}/connectors/BlockchainConnector.js +1 -1
- package/{build → dist/cjs}/connectors/BlockchainEventsListener.js +1 -1
- package/{build → dist/cjs}/connectors/index.js +1 -1
- package/{build → dist/cjs}/constants.js +1 -1
- package/{build → dist/cjs}/contracts/abi.js +1 -1
- package/{build → dist/cjs}/crypto/Crypto.js +1 -1
- package/{build → dist/cjs}/crypto/index.js +1 -1
- package/{build → dist/cjs}/crypto/nodejs/AES.js +1 -1
- package/{build → dist/cjs}/crypto/nodejs/ARIA.js +1 -1
- package/{build → dist/cjs}/crypto/nodejs/ECIES.js +1 -1
- package/dist/cjs/crypto/nodejs/NativeCrypto.js +183 -0
- package/{build → dist/cjs}/crypto/nodejs/RSA-Hybrid.js +1 -1
- package/{build → dist/cjs}/index.js +1 -1
- package/{build → dist/cjs}/logger.js +1 -1
- package/{build → dist/cjs}/models/EtlModel.js +1 -1
- package/{build → dist/cjs}/models/Offer.js +1 -1
- package/{build → dist/cjs}/models/Order.js +1 -1
- package/{build → dist/cjs}/models/Provider.js +1 -1
- package/{build → dist/cjs}/models/TCB.js +1 -1
- package/{build → dist/cjs}/models/TeeOffer.js +1 -1
- package/{build → dist/cjs}/models/index.js +1 -1
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/polyfills.js +7 -0
- package/dist/cjs/proto/Compression.js +132 -0
- package/dist/cjs/proto/TRI.js +293 -0
- package/dist/cjs/proto/TeeProperties.js +401 -0
- package/{build → dist/cjs}/providers/storage/ChunksDownloadDecorator.js +1 -1
- package/{build → dist/cjs}/providers/storage/IStorageProvider.js +1 -1
- package/{build → dist/cjs}/providers/storage/S3StorageProvider.js +1 -1
- package/{build → dist/cjs}/providers/storage/StorageAdapter.js +1 -1
- package/{build → dist/cjs}/providers/storage/StorageContentWriter.js +1 -1
- package/{build → dist/cjs}/providers/storage/StorageKeyValueAdapter.js +1 -1
- package/{build → dist/cjs}/providers/storage/StorageMetadataReader.js +1 -1
- package/{build → dist/cjs}/providers/storage/StorjAdapter.js +1 -1
- package/{build → dist/cjs}/providers/storage/StorjStorageProvider.js +1 -1
- package/{build → dist/cjs}/providers/storage/getStorageProvider.js +1 -1
- package/{build → dist/cjs}/providers/storage/types.js +1 -1
- package/{build → dist/cjs}/staticModels/ActiveOffers.js +1 -1
- package/{build → dist/cjs}/staticModels/ActiveOrders.js +1 -1
- package/dist/cjs/staticModels/Consensus.js +247 -0
- package/{build → dist/cjs}/staticModels/Deposits.js +1 -1
- package/{build → dist/cjs}/staticModels/Marks.js +1 -1
- package/{build → dist/cjs}/staticModels/ModelPackager.js +1 -1
- package/{build → dist/cjs}/staticModels/Offers.js +1 -1
- package/{build → dist/cjs}/staticModels/Orders.js +1 -1
- package/{build → dist/cjs}/staticModels/ProviderRegistry.js +1 -1
- package/{build → dist/cjs}/staticModels/StaticModel.js +1 -1
- package/{build → dist/cjs}/staticModels/Superpro.js +1 -1
- package/{build → dist/cjs}/staticModels/SuperproToken.js +1 -1
- package/{build → dist/cjs}/staticModels/TeeOffers.js +1 -1
- package/{build → dist/cjs}/store.js +1 -1
- package/{build → dist/cjs}/tee/QuoteParser.js +1 -1
- package/{build → dist/cjs}/tee/QuoteValidator.js +1 -1
- package/{build → dist/cjs}/tee/errors.js +1 -1
- package/dist/cjs/tee/helpers.js +119 -0
- package/{build → dist/cjs}/tee/interface.js +1 -1
- package/{build → dist/cjs}/tee/statuses.js +1 -1
- package/{build → dist/cjs}/tee/types.js +1 -1
- package/{build → dist/cjs}/types/Compressor.js +1 -1
- package/{build → dist/cjs}/types/Consensus.js +1 -1
- package/{build → dist/cjs}/types/DepositInfo.js +1 -1
- package/{build → dist/cjs}/types/EtlModel.js +1 -1
- package/{build → dist/cjs}/types/Events.js +1 -1
- package/{build → dist/cjs}/types/HardwareInfo.js +1 -1
- package/{build → dist/cjs}/types/Marks.js +1 -1
- package/{build → dist/cjs}/types/Offer.js +1 -1
- package/{build → dist/cjs}/types/OptionInfo.js +1 -1
- package/{build → dist/cjs}/types/Order.js +1 -1
- package/{build → dist/cjs}/types/OrderUsage.js +1 -1
- package/{build → dist/cjs}/types/Origins.js +1 -1
- package/{build → dist/cjs}/types/Provider.js +1 -1
- package/{build → dist/cjs}/types/ResourceLoader.js +1 -1
- package/{build → dist/cjs}/types/SlotInfo.js +1 -1
- package/{build → dist/cjs}/types/SlotUsage.js +1 -1
- package/{build → dist/cjs}/types/Superpro.js +1 -1
- package/{build → dist/cjs}/types/TeeOfferInfo.js +1 -1
- package/{build → dist/cjs}/types/TeeOfferOption.js +1 -1
- package/{build → dist/cjs}/types/TeeOfferSlot.js +1 -1
- package/{build → dist/cjs}/types/ValueOfferSlot.js +1 -1
- package/{build → dist/cjs}/types/Web3.js +1 -1
- package/{build → dist/cjs}/types/blockchainConnector/StorageAccess.js +1 -1
- package/{build → dist/cjs}/types/index.js +1 -1
- package/{build → dist/cjs}/types/storage/StorageAccess.js +1 -1
- package/{build → dist/cjs}/types/storage/StorageFileAccess.js +1 -1
- package/{build → dist/cjs}/types/storage/StorageObject.js +1 -1
- package/dist/cjs/utils/Monitoring.js +48 -0
- package/{build → dist/cjs}/utils/NonceTracker.js +1 -1
- package/dist/cjs/utils/PubSub.js +37 -0
- package/{build → dist/cjs}/utils/TxManager.js +1 -1
- package/{build → dist/cjs}/utils/compressors/GzipCompressor.js +1 -1
- package/{build → dist/cjs}/utils/compressors/UncompressedCompressor.js +1 -1
- package/{build → dist/cjs}/utils/compressors/index.js +1 -1
- package/{build → dist/cjs}/utils/helper.js +1 -1
- package/{build → dist/cjs}/utils/helpers/getStreamChunks.js +1 -1
- package/{build → dist/cjs}/utils/helpers/index.js +1 -1
- package/{build → dist/cjs}/utils/helpers/tryWithInterval.js +1 -1
- package/{build → dist/cjs}/utils/resourceLoaders/BaseResourceLoader.js +1 -1
- package/{build → dist/cjs}/utils/resourceLoaders/StorageProviderLoader.js +1 -1
- package/{build → dist/cjs}/utils/resourceLoaders/UrlResourceLoader.js +1 -1
- package/{build → dist/cjs}/utils/resourceLoaders/getResourceLoader.js +1 -1
- package/{build → dist/cjs}/utils/resourceLoaders/index.js +1 -1
- package/dist/mjs/TIIGenerator.d.ts +22 -0
- package/dist/mjs/TIIGenerator.js +224 -0
- package/dist/mjs/analytics/Analytics.d.ts +15 -0
- package/dist/mjs/analytics/Analytics.js +61 -0
- package/dist/mjs/analytics/AnalyticsError.d.ts +7 -0
- package/dist/mjs/analytics/AnalyticsError.js +8 -0
- package/dist/mjs/analytics/eventProviders/BrowserEventProvider.d.ts +18 -0
- package/dist/mjs/analytics/eventProviders/BrowserEventProvider.js +32 -0
- package/dist/mjs/analytics/eventProviders/EventProvider.d.ts +24 -0
- package/dist/mjs/analytics/eventProviders/EventProvider.js +22 -0
- package/dist/mjs/analytics/eventProviders/NodeEventProvider.d.ts +22 -0
- package/dist/mjs/analytics/eventProviders/NodeEventProvider.js +50 -0
- package/dist/mjs/analytics/transports/AxiosTransport.d.ts +4 -0
- package/dist/mjs/analytics/transports/AxiosTransport.js +31 -0
- package/dist/mjs/analytics/transports/FetchTransport.d.ts +4 -0
- package/dist/mjs/analytics/transports/FetchTransport.js +28 -0
- package/dist/mjs/analytics/types.d.ts +22 -0
- package/dist/mjs/analytics/types.js +2 -0
- package/dist/mjs/config.d.ts +4 -0
- package/dist/mjs/config.js +5 -0
- package/dist/mjs/connectors/BaseConnector.d.ts +36 -0
- package/dist/mjs/connectors/BaseConnector.js +34 -0
- package/dist/mjs/connectors/BlockchainConnector.d.ts +81 -0
- package/dist/mjs/connectors/BlockchainConnector.js +313 -0
- package/dist/mjs/connectors/BlockchainEventsListener.d.ts +15 -0
- package/dist/mjs/connectors/BlockchainEventsListener.js +75 -0
- package/dist/mjs/connectors/index.d.ts +2 -0
- package/dist/mjs/connectors/index.js +3 -0
- package/dist/mjs/constants.d.ts +13 -0
- package/dist/mjs/constants.js +14 -0
- package/dist/mjs/contracts/abi.d.ts +9916 -0
- package/dist/mjs/contracts/abi.js +12941 -0
- package/dist/mjs/crypto/Crypto.d.ts +54 -0
- package/dist/mjs/crypto/Crypto.js +95 -0
- package/dist/mjs/crypto/index.d.ts +2 -0
- package/dist/mjs/crypto/index.js +3 -0
- package/dist/mjs/crypto/nodejs/AES.d.ts +24 -0
- package/dist/mjs/crypto/nodejs/AES.js +74 -0
- package/dist/mjs/crypto/nodejs/ARIA.d.ts +24 -0
- package/dist/mjs/crypto/nodejs/ARIA.js +73 -0
- package/dist/mjs/crypto/nodejs/ECIES.d.ts +6 -0
- package/dist/mjs/crypto/nodejs/ECIES.js +51 -0
- package/dist/mjs/crypto/nodejs/NativeCrypto.d.ts +58 -0
- package/dist/mjs/crypto/nodejs/NativeCrypto.js +168 -0
- package/dist/mjs/crypto/nodejs/RSA-Hybrid.d.ts +15 -0
- package/dist/mjs/crypto/nodejs/RSA-Hybrid.js +89 -0
- package/dist/mjs/index.d.ts +79 -0
- package/dist/mjs/index.js +75 -0
- package/dist/mjs/logger.d.ts +7 -0
- package/dist/mjs/logger.js +7 -0
- package/dist/mjs/models/EtlModel.d.ts +34 -0
- package/dist/mjs/models/EtlModel.js +96 -0
- package/dist/mjs/models/Offer.d.ts +130 -0
- package/dist/mjs/models/Offer.js +356 -0
- package/dist/mjs/models/Order.d.ts +148 -0
- package/dist/mjs/models/Order.js +520 -0
- package/dist/mjs/models/Provider.d.ts +51 -0
- package/dist/mjs/models/Provider.js +114 -0
- package/dist/mjs/models/TCB.d.ts +58 -0
- package/dist/mjs/models/TCB.js +107 -0
- package/dist/mjs/models/TeeOffer.d.ts +204 -0
- package/dist/mjs/models/TeeOffer.js +533 -0
- package/dist/mjs/models/index.d.ts +5 -0
- package/dist/mjs/models/index.js +6 -0
- package/dist/mjs/package.json +1 -0
- package/dist/mjs/polyfills.d.ts +0 -0
- package/dist/mjs/polyfills.js +7 -0
- package/dist/mjs/proto/Compression.d.ts +36 -0
- package/dist/mjs/proto/Compression.js +123 -0
- package/dist/mjs/proto/TRI.d.ts +124 -0
- package/dist/mjs/proto/TRI.js +284 -0
- package/dist/mjs/proto/TeeProperties.d.ts +263 -0
- package/dist/mjs/proto/TeeProperties.js +391 -0
- package/dist/mjs/providers/storage/ChunksDownloadDecorator.d.ts +36 -0
- package/dist/mjs/providers/storage/ChunksDownloadDecorator.js +139 -0
- package/dist/mjs/providers/storage/IStorageProvider.d.ts +15 -0
- package/dist/mjs/providers/storage/IStorageProvider.js +2 -0
- package/dist/mjs/providers/storage/S3StorageProvider.d.ts +25 -0
- package/dist/mjs/providers/storage/S3StorageProvider.js +167 -0
- package/dist/mjs/providers/storage/StorageAdapter.d.ts +60 -0
- package/dist/mjs/providers/storage/StorageAdapter.js +271 -0
- package/dist/mjs/providers/storage/StorageContentWriter.d.ts +46 -0
- package/dist/mjs/providers/storage/StorageContentWriter.js +161 -0
- package/dist/mjs/providers/storage/StorageKeyValueAdapter.d.ts +23 -0
- package/dist/mjs/providers/storage/StorageKeyValueAdapter.js +119 -0
- package/dist/mjs/providers/storage/StorageMetadataReader.d.ts +20 -0
- package/dist/mjs/providers/storage/StorageMetadataReader.js +51 -0
- package/dist/mjs/providers/storage/StorjAdapter.d.ts +19 -0
- package/dist/mjs/providers/storage/StorjAdapter.js +48 -0
- package/dist/mjs/providers/storage/StorjStorageProvider.d.ts +25 -0
- package/dist/mjs/providers/storage/StorjStorageProvider.js +141 -0
- package/dist/mjs/providers/storage/getStorageProvider.d.ts +4 -0
- package/dist/mjs/providers/storage/getStorageProvider.js +15 -0
- package/dist/mjs/providers/storage/types.d.ts +7 -0
- package/dist/mjs/providers/storage/types.js +2 -0
- package/dist/mjs/staticModels/ActiveOffers.d.ts +15 -0
- package/dist/mjs/staticModels/ActiveOffers.js +32 -0
- package/dist/mjs/staticModels/ActiveOrders.d.ts +20 -0
- package/dist/mjs/staticModels/ActiveOrders.js +71 -0
- package/dist/mjs/staticModels/Consensus.d.ts +42 -0
- package/dist/mjs/staticModels/Consensus.js +220 -0
- package/dist/mjs/staticModels/Deposits.d.ts +70 -0
- package/dist/mjs/staticModels/Deposits.js +190 -0
- package/dist/mjs/staticModels/Marks.d.ts +8 -0
- package/dist/mjs/staticModels/Marks.js +25 -0
- package/dist/mjs/staticModels/ModelPackager.d.ts +18 -0
- package/dist/mjs/staticModels/ModelPackager.js +45 -0
- package/dist/mjs/staticModels/Offers.d.ts +65 -0
- package/dist/mjs/staticModels/Offers.js +184 -0
- package/dist/mjs/staticModels/Orders.d.ts +155 -0
- package/dist/mjs/staticModels/Orders.js +472 -0
- package/dist/mjs/staticModels/ProviderRegistry.d.ts +74 -0
- package/dist/mjs/staticModels/ProviderRegistry.js +169 -0
- package/dist/mjs/staticModels/StaticModel.d.ts +8 -0
- package/dist/mjs/staticModels/StaticModel.js +30 -0
- package/dist/mjs/staticModels/Superpro.d.ts +16 -0
- package/dist/mjs/staticModels/Superpro.js +23 -0
- package/dist/mjs/staticModels/SuperproToken.d.ts +48 -0
- package/dist/mjs/staticModels/SuperproToken.js +136 -0
- package/dist/mjs/staticModels/TeeOffers.d.ts +115 -0
- package/dist/mjs/staticModels/TeeOffers.js +309 -0
- package/dist/mjs/store.d.ts +15 -0
- package/dist/mjs/store.js +15 -0
- package/dist/mjs/tee/QuoteParser.d.ts +27 -0
- package/dist/mjs/tee/QuoteParser.js +162 -0
- package/dist/mjs/tee/QuoteValidator.d.ts +38 -0
- package/dist/mjs/tee/QuoteValidator.js +382 -0
- package/dist/mjs/tee/errors.d.ts +6 -0
- package/dist/mjs/tee/errors.js +7 -0
- package/dist/mjs/tee/helpers.d.ts +14 -0
- package/dist/mjs/tee/helpers.js +115 -0
- package/dist/mjs/tee/interface.d.ts +63 -0
- package/dist/mjs/tee/interface.js +2 -0
- package/dist/mjs/tee/statuses.d.ts +21 -0
- package/dist/mjs/tee/statuses.js +25 -0
- package/dist/mjs/tee/types.d.ts +75 -0
- package/dist/mjs/tee/types.js +2 -0
- package/dist/mjs/types/Compressor.d.ts +5 -0
- package/dist/mjs/types/Compressor.js +2 -0
- package/dist/mjs/types/Consensus.d.ts +60 -0
- package/dist/mjs/types/Consensus.js +16 -0
- package/dist/mjs/types/DepositInfo.d.ts +6 -0
- package/dist/mjs/types/DepositInfo.js +2 -0
- package/dist/mjs/types/EtlModel.d.ts +2 -0
- package/dist/mjs/types/EtlModel.js +2 -0
- package/dist/mjs/types/Events.d.ts +34 -0
- package/dist/mjs/types/Events.js +2 -0
- package/dist/mjs/types/HardwareInfo.d.ts +6 -0
- package/dist/mjs/types/HardwareInfo.js +2 -0
- package/dist/mjs/types/Marks.d.ts +9 -0
- package/dist/mjs/types/Marks.js +7 -0
- package/dist/mjs/types/Offer.d.ts +33 -0
- package/dist/mjs/types/Offer.js +14 -0
- package/dist/mjs/types/OptionInfo.d.ts +8 -0
- package/dist/mjs/types/OptionInfo.js +2 -0
- package/dist/mjs/types/Order.d.ts +56 -0
- package/dist/mjs/types/Order.js +51 -0
- package/dist/mjs/types/OrderUsage.d.ts +26 -0
- package/dist/mjs/types/OrderUsage.js +2 -0
- package/dist/mjs/types/Origins.d.ts +6 -0
- package/dist/mjs/types/Origins.js +2 -0
- package/dist/mjs/types/Provider.d.ts +7 -0
- package/dist/mjs/types/Provider.js +2 -0
- package/dist/mjs/types/ResourceLoader.d.ts +28 -0
- package/dist/mjs/types/ResourceLoader.js +2 -0
- package/dist/mjs/types/SlotInfo.d.ts +6 -0
- package/dist/mjs/types/SlotInfo.js +2 -0
- package/dist/mjs/types/SlotUsage.d.ts +11 -0
- package/dist/mjs/types/SlotUsage.js +6 -0
- package/dist/mjs/types/Superpro.d.ts +9 -0
- package/dist/mjs/types/Superpro.js +11 -0
- package/dist/mjs/types/TeeOfferInfo.d.ts +10 -0
- package/dist/mjs/types/TeeOfferInfo.js +2 -0
- package/dist/mjs/types/TeeOfferOption.d.ts +13 -0
- package/dist/mjs/types/TeeOfferOption.js +2 -0
- package/dist/mjs/types/TeeOfferSlot.d.ts +8 -0
- package/dist/mjs/types/TeeOfferSlot.js +2 -0
- package/dist/mjs/types/ValueOfferSlot.d.ts +16 -0
- package/dist/mjs/types/ValueOfferSlot.js +2 -0
- package/dist/mjs/types/Web3.d.ts +62 -0
- package/dist/mjs/types/Web3.js +2 -0
- package/dist/mjs/types/blockchainConnector/StorageAccess.d.ts +8 -0
- package/dist/mjs/types/blockchainConnector/StorageAccess.js +2 -0
- package/dist/mjs/types/index.d.ts +22 -0
- package/dist/mjs/types/index.js +23 -0
- package/dist/mjs/types/storage/StorageAccess.d.ts +7 -0
- package/dist/mjs/types/storage/StorageAccess.js +2 -0
- package/dist/mjs/types/storage/StorageFileAccess.d.ts +5 -0
- package/dist/mjs/types/storage/StorageFileAccess.js +2 -0
- package/dist/mjs/types/storage/StorageObject.d.ts +8 -0
- package/dist/mjs/types/storage/StorageObject.js +2 -0
- package/dist/mjs/utils/Monitoring.d.ts +11 -0
- package/dist/mjs/utils/Monitoring.js +42 -0
- package/dist/mjs/utils/NonceTracker.d.ts +19 -0
- package/dist/mjs/utils/NonceTracker.js +73 -0
- package/dist/mjs/utils/PubSub.d.ts +9 -0
- package/dist/mjs/utils/PubSub.js +32 -0
- package/dist/mjs/utils/TxManager.d.ts +25 -0
- package/dist/mjs/utils/TxManager.js +162 -0
- package/dist/mjs/utils/compressors/GzipCompressor.d.ts +8 -0
- package/dist/mjs/utils/compressors/GzipCompressor.js +14 -0
- package/dist/mjs/utils/compressors/UncompressedCompressor.d.ts +8 -0
- package/dist/mjs/utils/compressors/UncompressedCompressor.js +13 -0
- package/dist/mjs/utils/compressors/index.d.ts +2 -0
- package/dist/mjs/utils/compressors/index.js +3 -0
- package/dist/mjs/utils/helper.d.ts +44 -0
- package/dist/mjs/utils/helper.js +258 -0
- package/dist/mjs/utils/helpers/getStreamChunks.d.ts +9 -0
- package/dist/mjs/utils/helpers/getStreamChunks.js +31 -0
- package/dist/mjs/utils/helpers/index.d.ts +1 -0
- package/dist/mjs/utils/helpers/index.js +2 -0
- package/dist/mjs/utils/helpers/tryWithInterval.d.ts +13 -0
- package/dist/mjs/utils/helpers/tryWithInterval.js +35 -0
- package/dist/mjs/utils/resourceLoaders/BaseResourceLoader.d.ts +10 -0
- package/dist/mjs/utils/resourceLoaders/BaseResourceLoader.js +10 -0
- package/dist/mjs/utils/resourceLoaders/StorageProviderLoader.d.ts +18 -0
- package/dist/mjs/utils/resourceLoaders/StorageProviderLoader.js +53 -0
- package/dist/mjs/utils/resourceLoaders/UrlResourceLoader.d.ts +9 -0
- package/dist/mjs/utils/resourceLoaders/UrlResourceLoader.js +44 -0
- package/dist/mjs/utils/resourceLoaders/getResourceLoader.d.ts +5 -0
- package/dist/mjs/utils/resourceLoaders/getResourceLoader.js +11 -0
- package/dist/mjs/utils/resourceLoaders/index.d.ts +1 -0
- package/dist/mjs/utils/resourceLoaders/index.js +2 -0
- package/package.json +11 -4
- package/build/analytics/eventProviders/EventProvider.js +0 -14
- package/build/crypto/nodejs/NativeCrypto.js +0 -183
- package/build/polyfills.js +0 -7
- package/build/proto/Compression.js +0 -132
- package/build/proto/TRI.js +0 -293
- package/build/proto/TeeProperties.js +0 -401
- package/build/staticModels/Consensus.js +0 -247
- package/build/tee/helpers.js +0 -119
- package/build/utils/Monitoring.js +0 -48
- package/build/utils/PubSub.js +0 -37
- /package/{build → dist/cjs}/TIIGenerator.d.ts +0 -0
- /package/{build → dist/cjs}/analytics/Analytics.d.ts +0 -0
- /package/{build → dist/cjs}/analytics/AnalyticsError.d.ts +0 -0
- /package/{build → dist/cjs}/analytics/eventProviders/BrowserEventProvider.d.ts +0 -0
- /package/{build → dist/cjs}/analytics/eventProviders/EventProvider.d.ts +0 -0
- /package/{build → dist/cjs}/analytics/eventProviders/NodeEventProvider.d.ts +0 -0
- /package/{build → dist/cjs}/analytics/transports/AxiosTransport.d.ts +0 -0
- /package/{build → dist/cjs}/analytics/transports/FetchTransport.d.ts +0 -0
- /package/{build → dist/cjs}/analytics/types.d.ts +0 -0
- /package/{build → dist/cjs}/config.d.ts +0 -0
- /package/{build → dist/cjs}/connectors/BaseConnector.d.ts +0 -0
- /package/{build → dist/cjs}/connectors/BlockchainConnector.d.ts +0 -0
- /package/{build → dist/cjs}/connectors/BlockchainEventsListener.d.ts +0 -0
- /package/{build → dist/cjs}/connectors/index.d.ts +0 -0
- /package/{build → dist/cjs}/constants.d.ts +0 -0
- /package/{build → dist/cjs}/contracts/abi.d.ts +0 -0
- /package/{build → dist/cjs}/crypto/Crypto.d.ts +0 -0
- /package/{build → dist/cjs}/crypto/index.d.ts +0 -0
- /package/{build → dist/cjs}/crypto/nodejs/AES.d.ts +0 -0
- /package/{build → dist/cjs}/crypto/nodejs/ARIA.d.ts +0 -0
- /package/{build → dist/cjs}/crypto/nodejs/ECIES.d.ts +0 -0
- /package/{build → dist/cjs}/crypto/nodejs/NativeCrypto.d.ts +0 -0
- /package/{build → dist/cjs}/crypto/nodejs/RSA-Hybrid.d.ts +0 -0
- /package/{build → dist/cjs}/index.d.ts +0 -0
- /package/{build → dist/cjs}/logger.d.ts +0 -0
- /package/{build → dist/cjs}/models/EtlModel.d.ts +0 -0
- /package/{build → dist/cjs}/models/Offer.d.ts +0 -0
- /package/{build → dist/cjs}/models/Order.d.ts +0 -0
- /package/{build → dist/cjs}/models/Provider.d.ts +0 -0
- /package/{build → dist/cjs}/models/TCB.d.ts +0 -0
- /package/{build → dist/cjs}/models/TeeOffer.d.ts +0 -0
- /package/{build → dist/cjs}/models/index.d.ts +0 -0
- /package/{build → dist/cjs}/polyfills.d.ts +0 -0
- /package/{build → dist/cjs}/proto/Compression.d.ts +0 -0
- /package/{build → dist/cjs}/proto/TRI.d.ts +0 -0
- /package/{build → dist/cjs}/proto/TeeProperties.d.ts +0 -0
- /package/{build → dist/cjs}/providers/storage/ChunksDownloadDecorator.d.ts +0 -0
- /package/{build → dist/cjs}/providers/storage/IStorageProvider.d.ts +0 -0
- /package/{build → dist/cjs}/providers/storage/S3StorageProvider.d.ts +0 -0
- /package/{build → dist/cjs}/providers/storage/StorageAdapter.d.ts +0 -0
- /package/{build → dist/cjs}/providers/storage/StorageContentWriter.d.ts +0 -0
- /package/{build → dist/cjs}/providers/storage/StorageKeyValueAdapter.d.ts +0 -0
- /package/{build → dist/cjs}/providers/storage/StorageMetadataReader.d.ts +0 -0
- /package/{build → dist/cjs}/providers/storage/StorjAdapter.d.ts +0 -0
- /package/{build → dist/cjs}/providers/storage/StorjStorageProvider.d.ts +0 -0
- /package/{build → dist/cjs}/providers/storage/getStorageProvider.d.ts +0 -0
- /package/{build → dist/cjs}/providers/storage/types.d.ts +0 -0
- /package/{build → dist/cjs}/staticModels/ActiveOffers.d.ts +0 -0
- /package/{build → dist/cjs}/staticModels/ActiveOrders.d.ts +0 -0
- /package/{build → dist/cjs}/staticModels/Consensus.d.ts +0 -0
- /package/{build → dist/cjs}/staticModels/Deposits.d.ts +0 -0
- /package/{build → dist/cjs}/staticModels/Marks.d.ts +0 -0
- /package/{build → dist/cjs}/staticModels/ModelPackager.d.ts +0 -0
- /package/{build → dist/cjs}/staticModels/Offers.d.ts +0 -0
- /package/{build → dist/cjs}/staticModels/Orders.d.ts +0 -0
- /package/{build → dist/cjs}/staticModels/ProviderRegistry.d.ts +0 -0
- /package/{build → dist/cjs}/staticModels/StaticModel.d.ts +0 -0
- /package/{build → dist/cjs}/staticModels/Superpro.d.ts +0 -0
- /package/{build → dist/cjs}/staticModels/SuperproToken.d.ts +0 -0
- /package/{build → dist/cjs}/staticModels/TeeOffers.d.ts +0 -0
- /package/{build → dist/cjs}/store.d.ts +0 -0
- /package/{build → dist/cjs}/tee/QuoteParser.d.ts +0 -0
- /package/{build → dist/cjs}/tee/QuoteValidator.d.ts +0 -0
- /package/{build → dist/cjs}/tee/errors.d.ts +0 -0
- /package/{build → dist/cjs}/tee/helpers.d.ts +0 -0
- /package/{build → dist/cjs}/tee/interface.d.ts +0 -0
- /package/{build → dist/cjs}/tee/statuses.d.ts +0 -0
- /package/{build → dist/cjs}/tee/types.d.ts +0 -0
- /package/{build → dist/cjs}/types/Compressor.d.ts +0 -0
- /package/{build → dist/cjs}/types/Consensus.d.ts +0 -0
- /package/{build → dist/cjs}/types/DepositInfo.d.ts +0 -0
- /package/{build → dist/cjs}/types/EtlModel.d.ts +0 -0
- /package/{build → dist/cjs}/types/Events.d.ts +0 -0
- /package/{build → dist/cjs}/types/HardwareInfo.d.ts +0 -0
- /package/{build → dist/cjs}/types/Marks.d.ts +0 -0
- /package/{build → dist/cjs}/types/Offer.d.ts +0 -0
- /package/{build → dist/cjs}/types/OptionInfo.d.ts +0 -0
- /package/{build → dist/cjs}/types/Order.d.ts +0 -0
- /package/{build → dist/cjs}/types/OrderUsage.d.ts +0 -0
- /package/{build → dist/cjs}/types/Origins.d.ts +0 -0
- /package/{build → dist/cjs}/types/Provider.d.ts +0 -0
- /package/{build → dist/cjs}/types/ResourceLoader.d.ts +0 -0
- /package/{build → dist/cjs}/types/SlotInfo.d.ts +0 -0
- /package/{build → dist/cjs}/types/SlotUsage.d.ts +0 -0
- /package/{build → dist/cjs}/types/Superpro.d.ts +0 -0
- /package/{build → dist/cjs}/types/TeeOfferInfo.d.ts +0 -0
- /package/{build → dist/cjs}/types/TeeOfferOption.d.ts +0 -0
- /package/{build → dist/cjs}/types/TeeOfferSlot.d.ts +0 -0
- /package/{build → dist/cjs}/types/ValueOfferSlot.d.ts +0 -0
- /package/{build → dist/cjs}/types/Web3.d.ts +0 -0
- /package/{build → dist/cjs}/types/blockchainConnector/StorageAccess.d.ts +0 -0
- /package/{build → dist/cjs}/types/index.d.ts +0 -0
- /package/{build → dist/cjs}/types/storage/StorageAccess.d.ts +0 -0
- /package/{build → dist/cjs}/types/storage/StorageFileAccess.d.ts +0 -0
- /package/{build → dist/cjs}/types/storage/StorageObject.d.ts +0 -0
- /package/{build → dist/cjs}/utils/Monitoring.d.ts +0 -0
- /package/{build → dist/cjs}/utils/NonceTracker.d.ts +0 -0
- /package/{build → dist/cjs}/utils/PubSub.d.ts +0 -0
- /package/{build → dist/cjs}/utils/TxManager.d.ts +0 -0
- /package/{build → dist/cjs}/utils/compressors/GzipCompressor.d.ts +0 -0
- /package/{build → dist/cjs}/utils/compressors/UncompressedCompressor.d.ts +0 -0
- /package/{build → dist/cjs}/utils/compressors/index.d.ts +0 -0
- /package/{build → dist/cjs}/utils/helper.d.ts +0 -0
- /package/{build → dist/cjs}/utils/helpers/getStreamChunks.d.ts +0 -0
- /package/{build → dist/cjs}/utils/helpers/index.d.ts +0 -0
- /package/{build → dist/cjs}/utils/helpers/tryWithInterval.d.ts +0 -0
- /package/{build → dist/cjs}/utils/resourceLoaders/BaseResourceLoader.d.ts +0 -0
- /package/{build → dist/cjs}/utils/resourceLoaders/StorageProviderLoader.d.ts +0 -0
- /package/{build → dist/cjs}/utils/resourceLoaders/UrlResourceLoader.d.ts +0 -0
- /package/{build → dist/cjs}/utils/resourceLoaders/getResourceLoader.d.ts +0 -0
- /package/{build → dist/cjs}/utils/resourceLoaders/index.d.ts +0 -0
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
import rootLogger from '../logger';
|
|
2
|
+
import { checkIfActionAccountInitialized, cleanWeb3Data, convertBigIntToString, convertTeeOfferOptionFromRaw, packDeviceId, unpackSlotInfo, convertOptionInfoToRaw, } from '../utils/helper';
|
|
3
|
+
import { formatBytes32String, parseBytes32String } from 'ethers/lib/utils';
|
|
4
|
+
import { OfferType, } from '../types';
|
|
5
|
+
import { BlockchainConnector, BlockchainEventsListener } from '../connectors';
|
|
6
|
+
import Superpro from './Superpro';
|
|
7
|
+
import TxManager from '../utils/TxManager';
|
|
8
|
+
import StaticModel from './StaticModel';
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVlT2ZmZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0YXRpY01vZGVscy9UZWVPZmZlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxVQUFVLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFDTCwrQkFBK0IsRUFDL0IsYUFBYSxFQUNiLHFCQUFxQixFQUNyQiw0QkFBNEIsRUFDNUIsWUFBWSxFQUNaLGNBQWMsRUFDZCxzQkFBc0IsR0FDdkIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQWEsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RixPQUFPLEVBS0wsU0FBUyxHQU9WLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLFFBQVEsTUFBTSxZQUFZLENBQUM7QUFDbEMsT0FBTyxTQUFTLE1BQU0sb0JBQW9CLENBQUM7QUFFM0MsT0FBTyxXQUFXLE1BQU0sZUFBZSxDQUFDO0FBRXhDLE1BQU0sU0FBUztJQUNMLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBVTtJQUVqQyxNQUFNLENBQVUsTUFBTSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUV2RSxNQUFNLENBQUMsU0FBUyxHQUFtQixFQUFFLENBQUM7SUFFdEMsTUFBTSxLQUFLLE9BQU87UUFDdkIsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO0lBQzFCLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQWdCO1FBQ25ELE1BQU0sV0FBVyxHQUFHLE1BQU0sU0FBUyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JELEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLFdBQVcsQ0FBQztRQUNwQyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsSUFBSSxXQUFXLENBQUM7UUFFcEMsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxFQUFnQjtRQUNyRCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sU0FBUyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzFELEVBQUUsQ0FBQyxRQUFRLEdBQUcsY0FBYyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUM1RCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSyxDQUFDLGNBQWM7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUMxQixNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sUUFBUSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7U0FDbkY7UUFFRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU07UUFDeEIsTUFBTSxRQUFRLEdBQUcsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFakUsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sUUFBUSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFFMUUsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTlDLEtBQUssSUFBSSxPQUFPLEdBQUcsYUFBYSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsT0FBTyxJQUFJLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRTtZQUN0RSxNQUFNLFNBQVMsR0FBRyxDQUNoQixNQUFNLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUNwRCxDQUFDLFFBQVEsRUFBZSxDQUFDO1lBQzFCLElBQUksU0FBUyxLQUFLLFNBQVMsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3BDLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7YUFDdkM7U0FDRjtRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUUzQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3hCLHdCQUFnQyxFQUNoQyxZQUEwQjtJQUMxQixzQkFBc0I7SUFDdEIsMEJBQTBCO0lBQzFCLFVBQVUsR0FBRyxTQUFTLEVBQ3RCLE9BQU8sR0FBRyxJQUFJLEVBQ2Qsa0JBQXVDO1FBRXZDLE1BQU0sUUFBUSxHQUFHLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pFLCtCQUErQixDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFcEQsOERBQThEO1FBQzlELFlBQVksQ0FBQyxZQUFZLEdBQUcsTUFBTSxTQUFTLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hGLE1BQU0sbUJBQW1CLEdBQUcsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUQsTUFBTSxTQUFTLENBQUMsT0FBTyxDQUNyQixRQUFRLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FDN0Isd0JBQXdCLEVBQ3hCLFlBQVksRUFDWixZQUFZLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFDbEMsc0JBQXNCLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsRUFDNUQsbUJBQW1CLEVBQ25CLE9BQU8sQ0FDUixFQUNELGtCQUFrQixDQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUNqQyxNQUdDLEVBQ0QsU0FBMkIsRUFDM0IsT0FBeUI7UUFFekIsTUFBTSxPQUFPLEdBQUcsTUFBTSxXQUFXLENBQUMsYUFBYSxDQUFDLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFL0YsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLElBQUksQ0FBQztRQUUxQixPQUFPLE9BQTRCLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLFFBQWdCO1FBQzFDLE1BQU0sUUFBUSxHQUFHLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWpFLE1BQU0saUJBQWlCLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWpELE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFFLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYTtRQUMvQixNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVqRSxPQUFPLE1BQU0sQ0FBQyxNQUFNLFFBQVEsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQXNCO1FBQ2pELE1BQU0sUUFBUSxHQUFHLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWpFLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxlQUFlO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWpFLE9BQU8sTUFBTSxDQUFDLE1BQU0sUUFBUSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFzQjtRQUN0RCxNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVqRSxPQUFPLE1BQU0sUUFBUSxDQUFDLE9BQU87YUFDMUIsYUFBYSxDQUFDLFFBQVEsQ0FBQzthQUN2QixJQUFJLEVBQUU7YUFDTixJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLDRCQUE0QixDQUFDLE1BQTJCLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUNyQyxNQUF3RSxFQUN4RSxTQUEyQixFQUMzQixPQUF5QjtRQUV6QixNQUFNLE9BQU8sR0FBRyxNQUFNLFdBQVcsQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFNUYsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLElBQUksQ0FBQztRQUUxQixPQUFPLE9BQTRCLENBQUM7SUFDdEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQ3ZDLE1BSUMsRUFDRCxTQUEyQixFQUMzQixPQUF5QjtRQUV6QixNQUFNLE9BQU8sR0FBRyxNQUFNLFdBQVcsQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFM0YsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLElBQUksQ0FBQztRQUUxQixPQUFPLE9BQTJCLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFnQyxFQUFFLE9BQWdCO1FBQzFFLE1BQU0sUUFBUSxHQUFHLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUUvRCxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BELFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBZSxFQUFRLEVBQUU7WUFDaEQsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN0RCxJQUFJLE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxJQUFJLE9BQU8sRUFBRTtnQkFDN0MsT0FBTzthQUNSO1lBQ0QsUUFBUSxDQUNFLFdBQVcsQ0FBQyxPQUFPLEVBQ2IsV0FBVyxDQUFDLE9BQU8sRUFDbkIsV0FBVyxDQUFDLE1BQU0sRUFDaEMsa0JBQWtCLENBQVksV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUMxQztnQkFDVCxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7Z0JBQ2hDLElBQUksRUFBVSxLQUFLLENBQUMsU0FBUzthQUM5QixDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNILFlBQVksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBWSxFQUFFLEVBQUU7WUFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFrQztRQUM1RCxNQUFNLFFBQVEsR0FBRyx3QkFBd0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0RSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7UUFFakUsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0RCxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQWUsRUFBUSxFQUFFO1lBQ2hELE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdEQsUUFBUSxDQUNRLFdBQVcsQ0FBQyxPQUFPLEVBQ25CLFdBQVcsQ0FBQyxNQUFNLEVBQ3JCO2dCQUNULEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztnQkFDaEMsSUFBSSxFQUFVLEtBQUssQ0FBQyxTQUFTO2FBQzlCLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0gsWUFBWSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFZLEVBQUUsRUFBRTtZQUN4QyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLFFBQWtDO1FBQzVELE1BQU0sUUFBUSxHQUFHLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztRQUVqRSxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RELFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBZSxFQUFRLEVBQUU7WUFDaEQsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN0RCxRQUFRLENBQ1EsV0FBVyxDQUFDLE9BQU8sRUFDbkIsV0FBVyxDQUFDLE1BQU0sRUFDckI7Z0JBQ1QsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO2dCQUNoQyxJQUFJLEVBQVUsS0FBSyxDQUFDLFNBQVM7YUFDOUIsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxZQUFZLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQVksRUFBRSxFQUFFO1lBQ3hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLFFBQWtDLEVBQUUsT0FBZ0I7UUFDOUUsTUFBTSxRQUFRLEdBQUcsd0JBQXdCLENBQUMsV0FBVyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsMEJBQTBCLEVBQUUsQ0FBQyxDQUFDO1FBRXpFLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkQsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFlLEVBQVEsRUFBRTtZQUNoRCxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3RELElBQUksT0FBTyxJQUFJLFdBQVcsQ0FBQyxPQUFPLElBQUksT0FBTyxFQUFFO2dCQUM3QyxPQUFPO2FBQ1I7WUFDRCxRQUFRLENBQ0UsV0FBVyxDQUFDLE9BQU8sRUFDYixXQUFXLENBQUMsVUFBVSxFQUN0QixXQUFXLENBQUMsUUFBUSxFQUNsQyxrQkFBa0IsQ0FBWSxXQUFXLENBQUMsVUFBVSxDQUFDLEVBQzFDO2dCQUNULEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztnQkFDaEMsSUFBSSxFQUFVLEtBQUssQ0FBQyxTQUFTO2FBQzlCLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0gsWUFBWSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFZLEVBQVEsRUFBRTtZQUM5QyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLGVBQWUsQ0FDM0IsUUFBb0MsRUFDcEMsVUFBeUI7UUFFekIsTUFBTSxRQUFRLEdBQUcsd0JBQXdCLENBQUMsV0FBVyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsNEJBQTRCLEVBQUUsQ0FBQyxDQUFDO1FBRTNFLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckQsWUFBWSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFlLEVBQVEsRUFBRTtZQUNoRCxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3RELElBQUksVUFBVSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsVUFBVSxJQUFJLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNwRixPQUFPO2FBQ1I7WUFDRCxRQUFRLENBQ1EsV0FBVyxDQUFDLFVBQVUsRUFDdEIsV0FBVyxDQUFDLFFBQVEsRUFDdkI7Z0JBQ1QsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO2dCQUNoQyxJQUFJLEVBQVUsS0FBSyxDQUFDLFNBQVM7YUFDOUIsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxZQUFZLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQVksRUFBRSxFQUFFO1lBQ3hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsZUFBZSxDQUMzQixRQUFvQyxFQUNwQyxVQUF5QjtRQUV6QixNQUFNLFFBQVEsR0FBRyx3QkFBd0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0RSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSw0QkFBNEIsRUFBRSxDQUFDLENBQUM7UUFFM0UsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyRCxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQWUsRUFBUSxFQUFFO1lBQ2hELE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdEQsSUFBSSxVQUFVLElBQUksV0FBVyxDQUFDLFVBQVUsSUFBSSxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDN0UsT0FBTzthQUNSO1lBQ0QsUUFBUSxDQUNRLFdBQVcsQ0FBQyxVQUFVLEVBQ3RCLFdBQVcsQ0FBQyxRQUFRLEVBQ3ZCO2dCQUNULEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztnQkFDaEMsSUFBSSxFQUFVLEtBQUssQ0FBQyxTQUFTO2FBQzlCLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0gsWUFBWSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFZLEVBQUUsRUFBRTtZQUN4QyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQW1DO1FBQ3pELE1BQU0sUUFBUSxHQUFHLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQztRQUVsRSxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZELFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBZSxFQUFRLEVBQUU7WUFDaEQsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN0RCxRQUFRLENBQ1EsV0FBVyxDQUFDLE9BQU8sRUFDekIsV0FBVyxDQUFDLE9BQU8sRUFDM0Isa0JBQWtCLENBQVksV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUMxQztnQkFDVCxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7Z0JBQ2hDLElBQUksRUFBVSxLQUFLLENBQUMsU0FBUzthQUM5QixDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNILFlBQVksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBWSxFQUFFLEVBQUU7WUFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFTSxNQUFNLENBQUMsc0JBQXNCLENBQUMsUUFBMkM7UUFDOUUsTUFBTSxRQUFRLEdBQUcsd0JBQXdCLENBQUMsV0FBVyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsZ0NBQWdDLEVBQUUsQ0FBQyxDQUFDO1FBRS9FLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztRQUNwRSxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQWUsRUFBUSxFQUFFO1lBQ2hELE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdEQsUUFBUSxDQUNRLFdBQVcsQ0FBQyxPQUFPLEVBQ3pCLFdBQVcsQ0FBQyxZQUFZLEVBQ3hCLFdBQVcsQ0FBQyxhQUFhLEVBQ3RCO2dCQUNULEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztnQkFDaEMsSUFBSSxFQUFVLEtBQUssQ0FBQyxTQUFTO2FBQzlCLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0gsWUFBWSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFZLEVBQUUsRUFBRTtZQUN4QyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDMUMsQ0FBQzs7QUFrREgsZUFBZSxTQUFTLENBQUMifQ==
|
|
@@ -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';
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsZUFBZSxFQUNmLFlBQVksRUFDWixhQUFhLEdBQ2QsTUFBTSxhQUFhLENBQUM7QUFlckIsTUFBTSxLQUFLLEdBQVU7SUFDbkIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsU0FBUyxFQUFFLFNBQVM7SUFDcEIsYUFBYSxFQUFFLFNBQVM7SUFDeEIsUUFBUSxFQUFFLGVBQWU7SUFDekIsa0JBQWtCLEVBQUUseUJBQXlCO0lBQzdDLGtCQUFrQixFQUFFLHlCQUF5QjtJQUM3QyxRQUFRLEVBQUUsU0FBUztJQUNuQixhQUFhLEVBQUUsYUFBYTtJQUM1QixZQUFZLEVBQUUsWUFBWTtJQUMxQixJQUFJLEVBQUUsRUFBRTtDQUNULENBQUM7QUFFRixlQUFlLEtBQUssQ0FBQyJ9
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { BinaryType, TeeSgxQuoteDataType, TeeSgxReportDataType } from './types';
|
|
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';
|
|
6
|
+
import { splitChain, Signature } from './helpers';
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUXVvdGVQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVlL1F1b3RlUGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekMsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sSUFBSSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDeEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWxELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLE1BQU0sQ0FBVSxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQ3JDLE1BQU0sQ0FBVSxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ2xDLE1BQU0sQ0FBVSxVQUFVLEdBQUcsR0FBRyxDQUFDO0lBQ2pDLE1BQU0sQ0FBVSxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQ3BDLE1BQU0sQ0FBVSxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ2xDLE1BQU0sQ0FBVSxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ2hDLE1BQU0sQ0FBVSxxQkFBcUIsR0FBRyxFQUFFLENBQUM7SUFDM0MsTUFBTSxDQUFVLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztJQUN6QyxNQUFNLENBQVUsb0JBQW9CLEdBQ2xDLFlBQVksQ0FBQyxxQkFBcUIsR0FBRyxZQUFZLENBQUMsbUJBQW1CLEdBQUcsY0FBYyxDQUFDLEVBQUUsQ0FBQztJQUM1RixNQUFNLENBQVUsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0lBQ3hDLE1BQU0sQ0FBVSxxQkFBcUIsR0FDbkMsWUFBWSxDQUFDLG9CQUFvQixHQUFHLFlBQVksQ0FBQyxrQkFBa0IsR0FBRyxjQUFj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
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { QuoteValidationStatuses } from './statuses';
|
|
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
|
+
}
|