@super-protocol/sdk-js 3.16.4 → 3.17.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.
- package/dist/cjs/RIGenerator.d.ts +3 -2
- package/dist/cjs/RIGenerator.js +7 -6
- package/dist/cjs/TIIGenerator.d.ts +2 -2
- package/dist/cjs/TIIGenerator.js +32 -4
- package/dist/cjs/TeeInputGeneratorBase.d.ts +3 -3
- package/dist/cjs/TeeInputGeneratorBase.js +5 -5
- package/dist/cjs/certificates/serializer.d.ts +5 -3
- package/dist/cjs/certificates/serializer.js +26 -11
- package/dist/cjs/certificates/types.d.ts +1 -1
- package/dist/cjs/connectors/BaseConnector.d.ts +3 -3
- package/dist/cjs/connectors/BaseConnector.js +1 -1
- package/dist/cjs/connectors/BlockchainConnector.js +3 -3
- package/dist/cjs/connectors/BlockchainEventsListener.d.ts +2 -2
- package/dist/cjs/connectors/BlockchainEventsListener.js +3 -2
- package/dist/cjs/constants.d.ts +1 -3
- package/dist/cjs/constants.js +3 -7
- package/dist/cjs/contracts/abi.d.ts +1067 -1137
- package/dist/cjs/contracts/abi.js +1408 -1500
- package/dist/cjs/crypto/Crypto.d.ts +10 -13
- package/dist/cjs/crypto/Crypto.js +14 -17
- package/dist/cjs/crypto/nodejs/AES.d.ts +1 -1
- package/dist/cjs/crypto/nodejs/AES.js +2 -2
- package/dist/cjs/crypto/nodejs/ARIA.d.ts +1 -1
- package/dist/cjs/crypto/nodejs/ARIA.js +2 -2
- package/dist/cjs/errors/index.d.ts +1 -0
- package/dist/cjs/errors/index.js +4 -2
- package/dist/cjs/errors/insufficient-funds.error.d.ts +19 -0
- package/dist/cjs/errors/insufficient-funds.error.js +57 -0
- package/dist/cjs/index.d.ts +3 -6
- package/dist/cjs/index.js +6 -9
- package/dist/cjs/models/Offer.d.ts +16 -1
- package/dist/cjs/models/Offer.js +59 -9
- package/dist/cjs/models/Order.d.ts +1 -1
- package/dist/cjs/models/Order.js +11 -15
- package/dist/cjs/models/Provider.d.ts +0 -1
- package/dist/cjs/models/Provider.js +1 -7
- package/dist/cjs/models/TCB.d.ts +1 -28
- package/dist/cjs/models/TCB.js +1 -61
- package/dist/cjs/models/TeeOffer.d.ts +3 -18
- package/dist/cjs/models/TeeOffer.js +20 -106
- package/dist/cjs/providers/storage/S3StorageProvider.js +5 -5
- package/dist/cjs/providers/storage/StorageKeyValueAdapter.d.ts +1 -1
- package/dist/cjs/providers/storage/StorageKeyValueAdapter.js +7 -7
- package/dist/cjs/providers/storage/fs-storage-provider.js +35 -15
- package/dist/cjs/providers/storage/parseStorageCredentials.d.ts +1 -2
- package/dist/cjs/staticModels/Consensus.d.ts +5 -16
- package/dist/cjs/staticModels/Consensus.js +17 -86
- package/dist/cjs/staticModels/Offers.d.ts +4 -1
- package/dist/cjs/staticModels/Offers.js +9 -8
- package/dist/cjs/staticModels/OffersCommon.d.ts +3 -1
- package/dist/cjs/staticModels/OffersCommon.js +6 -2
- package/dist/cjs/staticModels/Orders.js +12 -11
- package/dist/cjs/staticModels/ProviderRewards.js +2 -2
- package/dist/cjs/staticModels/StaticModel.js +5 -5
- package/dist/cjs/staticModels/SuperproToken.d.ts +7 -7
- package/dist/cjs/staticModels/SuperproToken.js +3 -3
- package/dist/cjs/staticModels/TeeOffers.d.ts +1 -7
- package/dist/cjs/staticModels/TeeOffers.js +11 -20
- package/dist/cjs/store.d.ts +0 -1
- package/dist/cjs/store.js +1 -2
- package/dist/cjs/tee/TeeBlockVerifier.d.ts +1 -2
- package/dist/cjs/tee/TeeBlockVerifier.js +17 -24
- package/dist/cjs/tee/TeeCertificateService.d.ts +1 -1
- package/dist/cjs/tee/TeeCertificateService.js +6 -10
- package/dist/cjs/tee/statuses.d.ts +0 -7
- package/dist/cjs/tee/statuses.js +2 -10
- package/dist/cjs/types/Consensus.d.ts +10 -31
- package/dist/cjs/types/Consensus.js +2 -10
- package/dist/cjs/types/Offer.d.ts +5 -0
- package/dist/cjs/types/Order.d.ts +26 -21
- package/dist/cjs/types/Order.js +24 -17
- package/dist/cjs/types/index.d.ts +0 -1
- package/dist/cjs/types/index.js +1 -2
- package/dist/cjs/utils/CryptoKeysTransformer.js +5 -5
- package/dist/cjs/utils/TxManager.js +21 -5
- package/dist/cjs/utils/helper.d.ts +2 -8
- package/dist/cjs/utils/helper.js +6 -75
- package/dist/cjs/utils/helpers/OrderArgsHelper.d.ts +2 -2
- package/dist/cjs/utils/helpers/OrderArgsHelper.js +5 -5
- package/dist/cjs/utils/helpers/index.d.ts +1 -0
- package/dist/cjs/utils/helpers/index.js +2 -1
- package/dist/cjs/utils/helpers/streamToBuffer.d.ts +4 -0
- package/dist/cjs/utils/helpers/streamToBuffer.js +13 -0
- package/dist/cjs/utils/order/versify.js +1 -7
- package/dist/cjs/utils/rent-calculator/rent-calculator.js +2 -3
- package/dist/cjs/utils/rent-calculator/types.d.ts +0 -1
- package/dist/cjs/utils/tcb.d.ts +2 -0
- package/dist/cjs/utils/tcb.js +13 -0
- package/dist/cjs/utils/types.d.ts +0 -5
- package/dist/mjs/RIGenerator.d.ts +3 -2
- package/dist/mjs/RIGenerator.js +8 -7
- package/dist/mjs/TIIGenerator.d.ts +2 -2
- package/dist/mjs/TIIGenerator.js +32 -4
- package/dist/mjs/TeeInputGeneratorBase.d.ts +3 -3
- package/dist/mjs/TeeInputGeneratorBase.js +5 -5
- package/dist/mjs/certificates/serializer.d.ts +5 -3
- package/dist/mjs/certificates/serializer.js +26 -11
- package/dist/mjs/certificates/types.d.ts +1 -1
- package/dist/mjs/connectors/BaseConnector.d.ts +3 -3
- package/dist/mjs/connectors/BaseConnector.js +1 -1
- package/dist/mjs/connectors/BlockchainConnector.js +3 -3
- package/dist/mjs/connectors/BlockchainEventsListener.d.ts +2 -2
- package/dist/mjs/connectors/BlockchainEventsListener.js +3 -2
- package/dist/mjs/constants.d.ts +1 -3
- package/dist/mjs/constants.js +2 -6
- package/dist/mjs/contracts/abi.d.ts +1067 -1137
- package/dist/mjs/contracts/abi.js +1406 -1498
- package/dist/mjs/crypto/Crypto.d.ts +10 -13
- package/dist/mjs/crypto/Crypto.js +14 -17
- package/dist/mjs/crypto/nodejs/AES.d.ts +1 -1
- package/dist/mjs/crypto/nodejs/AES.js +2 -2
- package/dist/mjs/crypto/nodejs/ARIA.d.ts +1 -1
- package/dist/mjs/crypto/nodejs/ARIA.js +2 -2
- package/dist/mjs/errors/index.d.ts +1 -0
- package/dist/mjs/errors/index.js +2 -1
- package/dist/mjs/errors/insufficient-funds.error.d.ts +19 -0
- package/dist/mjs/errors/insufficient-funds.error.js +53 -0
- package/dist/mjs/index.d.ts +3 -6
- package/dist/mjs/index.js +4 -7
- package/dist/mjs/models/Offer.d.ts +16 -1
- package/dist/mjs/models/Offer.js +53 -3
- package/dist/mjs/models/Order.d.ts +1 -1
- package/dist/mjs/models/Order.js +11 -15
- package/dist/mjs/models/Provider.d.ts +0 -1
- package/dist/mjs/models/Provider.js +1 -7
- package/dist/mjs/models/TCB.d.ts +1 -28
- package/dist/mjs/models/TCB.js +2 -62
- package/dist/mjs/models/TeeOffer.d.ts +3 -18
- package/dist/mjs/models/TeeOffer.js +13 -99
- package/dist/mjs/providers/storage/S3StorageProvider.js +5 -5
- package/dist/mjs/providers/storage/StorageKeyValueAdapter.d.ts +1 -1
- package/dist/mjs/providers/storage/StorageKeyValueAdapter.js +7 -7
- package/dist/mjs/providers/storage/fs-storage-provider.js +35 -15
- package/dist/mjs/providers/storage/parseStorageCredentials.d.ts +1 -2
- package/dist/mjs/staticModels/Consensus.d.ts +5 -16
- package/dist/mjs/staticModels/Consensus.js +18 -87
- package/dist/mjs/staticModels/Offers.d.ts +4 -1
- package/dist/mjs/staticModels/Offers.js +9 -8
- package/dist/mjs/staticModels/OffersCommon.d.ts +3 -1
- package/dist/mjs/staticModels/OffersCommon.js +6 -2
- package/dist/mjs/staticModels/Orders.js +12 -11
- package/dist/mjs/staticModels/ProviderRewards.js +3 -3
- package/dist/mjs/staticModels/StaticModel.js +5 -5
- package/dist/mjs/staticModels/SuperproToken.d.ts +7 -7
- package/dist/mjs/staticModels/SuperproToken.js +3 -3
- package/dist/mjs/staticModels/TeeOffers.d.ts +1 -7
- package/dist/mjs/staticModels/TeeOffers.js +12 -21
- package/dist/mjs/store.d.ts +0 -1
- package/dist/mjs/store.js +2 -3
- package/dist/mjs/tee/TeeBlockVerifier.d.ts +1 -2
- package/dist/mjs/tee/TeeBlockVerifier.js +17 -24
- package/dist/mjs/tee/TeeCertificateService.d.ts +1 -1
- package/dist/mjs/tee/TeeCertificateService.js +7 -11
- package/dist/mjs/tee/statuses.d.ts +0 -7
- package/dist/mjs/tee/statuses.js +1 -9
- package/dist/mjs/types/Consensus.d.ts +10 -31
- package/dist/mjs/types/Consensus.js +1 -9
- package/dist/mjs/types/Offer.d.ts +5 -0
- package/dist/mjs/types/Order.d.ts +26 -21
- package/dist/mjs/types/Order.js +21 -17
- package/dist/mjs/types/index.d.ts +0 -1
- package/dist/mjs/types/index.js +1 -2
- package/dist/mjs/utils/CryptoKeysTransformer.js +5 -5
- package/dist/mjs/utils/TxManager.js +21 -5
- package/dist/mjs/utils/helper.d.ts +2 -8
- package/dist/mjs/utils/helper.js +5 -68
- package/dist/mjs/utils/helpers/OrderArgsHelper.d.ts +2 -2
- package/dist/mjs/utils/helpers/OrderArgsHelper.js +5 -5
- package/dist/mjs/utils/helpers/index.d.ts +1 -0
- package/dist/mjs/utils/helpers/index.js +2 -1
- package/dist/mjs/utils/helpers/streamToBuffer.d.ts +4 -0
- package/dist/mjs/utils/helpers/streamToBuffer.js +9 -0
- package/dist/mjs/utils/order/versify.js +1 -7
- package/dist/mjs/utils/rent-calculator/rent-calculator.js +2 -3
- package/dist/mjs/utils/rent-calculator/types.d.ts +0 -1
- package/dist/mjs/utils/tcb.d.ts +2 -0
- package/dist/mjs/utils/tcb.js +9 -0
- package/dist/mjs/utils/types.d.ts +0 -5
- package/package.json +8 -9
- package/dist/cjs/contracts/Campaign.d.ts +0 -1198
- package/dist/cjs/contracts/Campaign.js +0 -1554
- package/dist/cjs/contracts/adminCertificateHelperAbi.d.ts +0 -316
- package/dist/cjs/contracts/adminCertificateHelperAbi.js +0 -410
- package/dist/cjs/proto/TeeDeviceInfo.d.ts +0 -292
- package/dist/cjs/proto/TeeDeviceInfo.js +0 -491
- package/dist/cjs/staticModels/AdminCertificateHelper.d.ts +0 -24
- package/dist/cjs/staticModels/AdminCertificateHelper.js +0 -99
- package/dist/cjs/staticModels/Campaign.d.ts +0 -62
- package/dist/cjs/staticModels/Campaign.js +0 -318
- package/dist/cjs/tee/QuoteValidator.d.ts +0 -46
- package/dist/cjs/tee/QuoteValidator.js +0 -456
- package/dist/cjs/tee/TcbSerializer.d.ts +0 -20
- package/dist/cjs/tee/TcbSerializer.js +0 -27
- package/dist/cjs/types/Campaign.d.ts +0 -55
- package/dist/cjs/types/Campaign.js +0 -17
- package/dist/cjs/utils/admin-service.d.ts +0 -13
- package/dist/cjs/utils/admin-service.js +0 -73
- package/dist/mjs/contracts/Campaign.d.ts +0 -1198
- package/dist/mjs/contracts/Campaign.js +0 -1551
- package/dist/mjs/contracts/adminCertificateHelperAbi.d.ts +0 -316
- package/dist/mjs/contracts/adminCertificateHelperAbi.js +0 -407
- package/dist/mjs/proto/TeeDeviceInfo.d.ts +0 -292
- package/dist/mjs/proto/TeeDeviceInfo.js +0 -485
- package/dist/mjs/staticModels/AdminCertificateHelper.d.ts +0 -24
- package/dist/mjs/staticModels/AdminCertificateHelper.js +0 -92
- package/dist/mjs/staticModels/Campaign.d.ts +0 -62
- package/dist/mjs/staticModels/Campaign.js +0 -313
- package/dist/mjs/tee/QuoteValidator.d.ts +0 -46
- package/dist/mjs/tee/QuoteValidator.js +0 -449
- package/dist/mjs/tee/TcbSerializer.d.ts +0 -20
- package/dist/mjs/tee/TcbSerializer.js +0 -23
- package/dist/mjs/types/Campaign.d.ts +0 -55
- package/dist/mjs/types/Campaign.js +0 -14
- package/dist/mjs/utils/admin-service.d.ts +0 -13
- package/dist/mjs/utils/admin-service.js +0 -66
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { TeeOfferInfo, TransactionOptions, OfferType, Origins, BlockchainId, TokenAmount, OfferVersionInfo, OfferVersion, TeeOfferSubtype, TeeOfferAggregatedInfo } from '../types/index.js';
|
|
2
|
-
import {
|
|
3
|
-
import { GetTcbRequest } from '@super-protocol/dto-js';
|
|
2
|
+
import { TeeOfferOption, TeeOfferSlot, OptionInfo, SlotUsage, SlotInfo } from '../types/index.js';
|
|
4
3
|
declare class TeeOffer {
|
|
5
4
|
private static contract;
|
|
6
5
|
id: BlockchainId;
|
|
@@ -69,15 +68,6 @@ declare class TeeOffer {
|
|
|
69
68
|
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
70
69
|
*/
|
|
71
70
|
deleteOption(optionId: BlockchainId, transactionOptions?: TransactionOptions): Promise<void>;
|
|
72
|
-
private initializeTcb;
|
|
73
|
-
private initializeTcbAndAssignBlocks;
|
|
74
|
-
/**
|
|
75
|
-
* Function initialize TCB and returns list of anothers' TCB for their checking
|
|
76
|
-
* @param deviceId - id of TEE offer
|
|
77
|
-
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
78
|
-
* @returns tcbId and lists of anothers' TCB for their checking
|
|
79
|
-
*/
|
|
80
|
-
getListsForVerification(deviceId: string, transactionOptions?: TransactionOptions): Promise<GetTcbRequest>;
|
|
81
71
|
/**
|
|
82
72
|
* Returns the offer version info.
|
|
83
73
|
*/
|
|
@@ -142,11 +132,7 @@ declare class TeeOffer {
|
|
|
142
132
|
* @returns Promise<BlockchainId> Promise that resolves to the actual TCB ID
|
|
143
133
|
*/
|
|
144
134
|
getActualTcbId(): Promise<BlockchainId>;
|
|
145
|
-
|
|
146
|
-
* Function return last initialized TCB of TEE offer
|
|
147
|
-
*/
|
|
148
|
-
getInitializedTcbId(): Promise<BlockchainId>;
|
|
149
|
-
isTcbCreationAvailable(deviceId: string): Promise<boolean>;
|
|
135
|
+
isTcbCreationAvailable(pubKey: string): Promise<boolean>;
|
|
150
136
|
/**
|
|
151
137
|
* Function for fetching TEE offer provider authority account from blockchain
|
|
152
138
|
*/
|
|
@@ -159,7 +145,6 @@ declare class TeeOffer {
|
|
|
159
145
|
* Fetch offer subtype from blockchain (TEE only)
|
|
160
146
|
*/
|
|
161
147
|
getSubtype(): Promise<TeeOfferSubtype>;
|
|
162
|
-
isTeeOfferVerifying(): Promise<boolean>;
|
|
163
148
|
/**
|
|
164
149
|
* Function for fetching violationRate for this TEE offer
|
|
165
150
|
*/
|
|
@@ -185,7 +170,7 @@ declare class TeeOffer {
|
|
|
185
170
|
* @param newHardwareInfo - new offer hardware info
|
|
186
171
|
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
187
172
|
*/
|
|
188
|
-
|
|
173
|
+
setTeeOfferHardwareOptionInfo(optionInfo: OptionInfo, transactionOptions?: TransactionOptions): Promise<void>;
|
|
189
174
|
/**
|
|
190
175
|
* Updates description in offer info
|
|
191
176
|
* @param description - new description
|
|
@@ -16,14 +16,12 @@ const helper_js_1 = require("../utils/helper.js");
|
|
|
16
16
|
const index_js_1 = require("../types/index.js");
|
|
17
17
|
const index_js_2 = require("../connectors/index.js");
|
|
18
18
|
const TxManager_js_1 = __importDefault(require("../utils/TxManager.js"));
|
|
19
|
-
const
|
|
19
|
+
const ethers_1 = require("ethers");
|
|
20
20
|
const TeeOffers_js_1 = __importDefault(require("../staticModels/TeeOffers.js"));
|
|
21
|
-
const index_js_3 = require("../models/index.js");
|
|
22
21
|
const dto_js_1 = require("@super-protocol/dto-js");
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
const index_js_5 = require("../errors/index.js");
|
|
22
|
+
const index_js_3 = require("../utils/schema-utils/index.js");
|
|
23
|
+
const utils_js_1 = require("../errors/utils.js");
|
|
24
|
+
const index_js_4 = require("../errors/index.js");
|
|
27
25
|
const StaticModel_js_1 = __importDefault(require("../staticModels/StaticModel.js"));
|
|
28
26
|
class TeeOffer {
|
|
29
27
|
static contract;
|
|
@@ -155,7 +153,7 @@ class TeeOffer {
|
|
|
155
153
|
async addOption(info, usage, externalId = 'default', transactionOptions) {
|
|
156
154
|
const contract = index_js_2.BlockchainConnector.getInstance().getContract();
|
|
157
155
|
(0, helper_js_1.checkIfActionAccountInitialized)(transactionOptions);
|
|
158
|
-
const formattedExternalId = (0,
|
|
156
|
+
const formattedExternalId = (0, ethers_1.encodeBytes32String)(externalId);
|
|
159
157
|
const newTeeOptionId = await StaticModel_js_1.default.createEntity({
|
|
160
158
|
txExecutorCallback: async () => {
|
|
161
159
|
await TxManager_js_1.default.execute(contract.methods.addOption(this.id, formattedExternalId, (0, helper_js_1.convertOptionInfoToRaw)(info), usage), transactionOptions);
|
|
@@ -186,54 +184,6 @@ class TeeOffer {
|
|
|
186
184
|
(0, helper_js_1.checkIfActionAccountInitialized)(transactionOptions);
|
|
187
185
|
await TxManager_js_1.default.execute(TeeOffer.contract.methods.deleteOption(this.id, optionId), transactionOptions);
|
|
188
186
|
}
|
|
189
|
-
async initializeTcb(deviceId, transactionOptions) {
|
|
190
|
-
(0, helper_js_1.checkIfActionAccountInitialized)();
|
|
191
|
-
await TxManager_js_1.default.execute(TeeOffer.contract.methods.initializeTcb(this.id, deviceId), transactionOptions);
|
|
192
|
-
}
|
|
193
|
-
async initializeTcbAndAssignBlocks(deviceId, transactionOptions) {
|
|
194
|
-
await this.initializeTcb(deviceId, transactionOptions);
|
|
195
|
-
const tcbId = await this.getInitializedTcbId();
|
|
196
|
-
const tcb = new index_js_3.TCB(tcbId);
|
|
197
|
-
await tcb.assignLastBlocksToCheck(transactionOptions);
|
|
198
|
-
await tcb.assignSuspiciousBlocksToCheck(transactionOptions);
|
|
199
|
-
return tcb;
|
|
200
|
-
}
|
|
201
|
-
/**
|
|
202
|
-
* Function initialize TCB and returns list of anothers' TCB for their checking
|
|
203
|
-
* @param deviceId - id of TEE offer
|
|
204
|
-
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
205
|
-
* @returns tcbId and lists of anothers' TCB for their checking
|
|
206
|
-
*/
|
|
207
|
-
async getListsForVerification(deviceId, transactionOptions) {
|
|
208
|
-
(0, helper_js_1.checkIfActionAccountInitialized)();
|
|
209
|
-
deviceId = (0, helper_js_1.packDeviceId)(deviceId);
|
|
210
|
-
const tcb = await this.initializeTcbAndAssignBlocks(deviceId, transactionOptions);
|
|
211
|
-
const { checkingTcbIds } = await tcb.getPublicData();
|
|
212
|
-
const tcbsPublicData = await Consensus_js_1.default.getTcbsPublicData(checkingTcbIds);
|
|
213
|
-
const tcbsUtilityData = await Consensus_js_1.default.getTcbsUtilityData(checkingTcbIds);
|
|
214
|
-
const teeOfferIds = [];
|
|
215
|
-
for (const tcbId of checkingTcbIds) {
|
|
216
|
-
teeOfferIds.push(tcbsUtilityData[tcbId].teeOfferId);
|
|
217
|
-
}
|
|
218
|
-
const benchmarks = await Consensus_js_1.default.getBenchmarksByTcbIds(checkingTcbIds, teeOfferIds);
|
|
219
|
-
const tcbsForVerification = [];
|
|
220
|
-
for (const checkingTcbId of checkingTcbIds) {
|
|
221
|
-
const { checkingTcbMarks, ...otherPublicData } = tcbsPublicData[checkingTcbId];
|
|
222
|
-
const { quote, pubKey } = tcbsUtilityData[checkingTcbId];
|
|
223
|
-
tcbsForVerification.push({
|
|
224
|
-
...otherPublicData,
|
|
225
|
-
benchmark: benchmarks[checkingTcbId],
|
|
226
|
-
checkingTcbId,
|
|
227
|
-
checkingTcbMarks: checkingTcbMarks.map((mark) => mark),
|
|
228
|
-
pubKey,
|
|
229
|
-
quote,
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
return {
|
|
233
|
-
tcbId: tcb.tcbId.toString(),
|
|
234
|
-
tcbsForVerification,
|
|
235
|
-
};
|
|
236
|
-
}
|
|
237
187
|
/**
|
|
238
188
|
* Returns the offer version info.
|
|
239
189
|
*/
|
|
@@ -249,10 +199,10 @@ class TeeOffer {
|
|
|
249
199
|
metadata: JSON.parse(cleanedTeeOfferVersion.info.metadata),
|
|
250
200
|
}),
|
|
251
201
|
...(cleanedTeeOfferVersion.info.signatureKeyHash && {
|
|
252
|
-
signatureKeyHash: (0,
|
|
202
|
+
signatureKeyHash: (0, index_js_3.deserializeBySchema)(cleanedTeeOfferVersion.info.signatureKeyHash, dto_js_1.HashSchema),
|
|
253
203
|
}),
|
|
254
204
|
...(cleanedTeeOfferVersion.info.hash && {
|
|
255
|
-
hash: (0,
|
|
205
|
+
hash: (0, index_js_3.deserializeBySchema)(cleanedTeeOfferVersion.info.hash, dto_js_1.HashSchema),
|
|
256
206
|
}),
|
|
257
207
|
},
|
|
258
208
|
};
|
|
@@ -309,7 +259,7 @@ class TeeOffer {
|
|
|
309
259
|
async addSlot(info, usage, externalId = 'default', transactionOptions) {
|
|
310
260
|
(0, helper_js_1.checkIfActionAccountInitialized)(transactionOptions);
|
|
311
261
|
info = (0, helper_js_1.packSlotInfo)(info, await TeeOffers_js_1.default.getDenominator());
|
|
312
|
-
const formattedExternalId = (0,
|
|
262
|
+
const formattedExternalId = (0, ethers_1.encodeBytes32String)(externalId);
|
|
313
263
|
const newTeeSlotId = await StaticModel_js_1.default.createEntity({
|
|
314
264
|
txExecutorCallback: async () => {
|
|
315
265
|
await TxManager_js_1.default.execute(TeeOffer.contract.methods.addTeeOfferSlot(this.id, formattedExternalId, info, usage), transactionOptions);
|
|
@@ -350,9 +300,9 @@ class TeeOffer {
|
|
|
350
300
|
async setNewVersion(newVersion, versionInfo, transactionOptions) {
|
|
351
301
|
(0, helper_js_1.checkIfActionAccountInitialized)(transactionOptions);
|
|
352
302
|
const transactionCall = TeeOffer.contract.methods.setOfferNewVersion(this.id, newVersion, {
|
|
353
|
-
hash: versionInfo.hash ? (0,
|
|
303
|
+
hash: versionInfo.hash ? (0, index_js_3.serializeBySchema)(versionInfo.hash, dto_js_1.HashSchema) : '',
|
|
354
304
|
signatureKeyHash: versionInfo.signatureKeyHash
|
|
355
|
-
? (0,
|
|
305
|
+
? (0, index_js_3.serializeBySchema)(versionInfo.signatureKeyHash, dto_js_1.HashSchema)
|
|
356
306
|
: '',
|
|
357
307
|
metadata: versionInfo.metadata ? JSON.stringify(versionInfo.metadata) : '',
|
|
358
308
|
});
|
|
@@ -375,17 +325,9 @@ class TeeOffer {
|
|
|
375
325
|
getActualTcbId() {
|
|
376
326
|
return TeeOffer.contract.methods.getActualTcbId(this.id).call();
|
|
377
327
|
}
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
getInitializedTcbId() {
|
|
382
|
-
return TeeOffer.contract.methods.getInitializedTcbId(this.id).call();
|
|
383
|
-
}
|
|
384
|
-
async isTcbCreationAvailable(deviceId) {
|
|
385
|
-
const { offerNotBlocked, newEpochStarted, halfEpochPassed, benchmarkVerified } = (0, helper_js_1.cleanWeb3Data)(await TeeOffer.contract.methods
|
|
386
|
-
.isTcbCreationAvailable(this.id, (0, helper_js_1.packDeviceId)(deviceId))
|
|
387
|
-
.call());
|
|
388
|
-
return offerNotBlocked && newEpochStarted && halfEpochPassed && benchmarkVerified;
|
|
328
|
+
async isTcbCreationAvailable(pubKey) {
|
|
329
|
+
const { offerNotBlocked, newEpochStarted, halfEpochPassed } = (0, helper_js_1.cleanWeb3Data)(await TeeOffer.contract.methods.isTcbCreationAvailable(this.id, pubKey).call());
|
|
330
|
+
return offerNotBlocked && newEpochStarted && halfEpochPassed;
|
|
389
331
|
}
|
|
390
332
|
/**
|
|
391
333
|
* Function for fetching TEE offer provider authority account from blockchain
|
|
@@ -410,9 +352,6 @@ class TeeOffer {
|
|
|
410
352
|
this.type = await TeeOffer.contract.methods.getTeeOfferSubtype(this.id).call();
|
|
411
353
|
return this.type.toString();
|
|
412
354
|
}
|
|
413
|
-
isTeeOfferVerifying() {
|
|
414
|
-
return TeeOffer.contract.methods.isTeeOfferVerified(this.id).call();
|
|
415
|
-
}
|
|
416
355
|
/**
|
|
417
356
|
* Function for fetching violationRate for this TEE offer
|
|
418
357
|
*/
|
|
@@ -451,8 +390,8 @@ class TeeOffer {
|
|
|
451
390
|
*/
|
|
452
391
|
async setInfo(newInfo, transactionOptions) {
|
|
453
392
|
(0, helper_js_1.checkIfActionAccountInitialized)(transactionOptions);
|
|
454
|
-
const { hardwareInfo, subType, ...offerInfo } = newInfo;
|
|
455
|
-
await this.
|
|
393
|
+
const { hardwareInfo: { optionInfo }, subType, ...offerInfo } = newInfo;
|
|
394
|
+
await this.setTeeOfferHardwareOptionInfo(optionInfo, transactionOptions);
|
|
456
395
|
await TxManager_js_1.default.execute(TeeOffer.contract.methods.setTeeOfferInfo(this.id, {
|
|
457
396
|
...offerInfo,
|
|
458
397
|
subtype: subType,
|
|
@@ -465,10 +404,9 @@ class TeeOffer {
|
|
|
465
404
|
* @param newHardwareInfo - new offer hardware info
|
|
466
405
|
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
467
406
|
*/
|
|
468
|
-
async
|
|
407
|
+
async setTeeOfferHardwareOptionInfo(optionInfo, transactionOptions) {
|
|
469
408
|
(0, helper_js_1.checkIfActionAccountInitialized)(transactionOptions);
|
|
470
|
-
|
|
471
|
-
await TxManager_js_1.default.execute(TeeOffer.contract.methods.setTeeOfferHardwareInfo(this.id, newHardwareInfo.slotInfo, (0, helper_js_1.convertOptionInfoToRaw)(newHardwareInfo.optionInfo)), transactionOptions);
|
|
409
|
+
await TxManager_js_1.default.execute(TeeOffer.contract.methods.setTeeOfferHardwareOptionInfo(this.id, (0, helper_js_1.convertOptionInfoToRaw)(optionInfo)), transactionOptions);
|
|
472
410
|
}
|
|
473
411
|
/**
|
|
474
412
|
* Updates description in offer info
|
|
@@ -524,9 +462,9 @@ class TeeOffer {
|
|
|
524
462
|
return await promise;
|
|
525
463
|
}
|
|
526
464
|
catch (err) {
|
|
527
|
-
const message = (0,
|
|
465
|
+
const message = (0, utils_js_1.getBcErrorMessage)(err);
|
|
528
466
|
if (message.includes('Offer not found')) {
|
|
529
|
-
throw new
|
|
467
|
+
throw new index_js_4.NotFoundError(`Offer ${this.id} not found`);
|
|
530
468
|
}
|
|
531
469
|
throw err;
|
|
532
470
|
}
|
|
@@ -580,24 +518,6 @@ __decorate([
|
|
|
580
518
|
__metadata("design:paramtypes", [String, Object]),
|
|
581
519
|
__metadata("design:returntype", Promise)
|
|
582
520
|
], TeeOffer.prototype, "deleteOption", null);
|
|
583
|
-
__decorate([
|
|
584
|
-
(0, helper_js_1.incrementMethodCall)(),
|
|
585
|
-
__metadata("design:type", Function),
|
|
586
|
-
__metadata("design:paramtypes", [String, Object]),
|
|
587
|
-
__metadata("design:returntype", Promise)
|
|
588
|
-
], TeeOffer.prototype, "initializeTcb", null);
|
|
589
|
-
__decorate([
|
|
590
|
-
(0, helper_js_1.incrementMethodCall)(),
|
|
591
|
-
__metadata("design:type", Function),
|
|
592
|
-
__metadata("design:paramtypes", [String, Object]),
|
|
593
|
-
__metadata("design:returntype", Promise)
|
|
594
|
-
], TeeOffer.prototype, "initializeTcbAndAssignBlocks", null);
|
|
595
|
-
__decorate([
|
|
596
|
-
(0, helper_js_1.incrementMethodCall)(),
|
|
597
|
-
__metadata("design:type", Function),
|
|
598
|
-
__metadata("design:paramtypes", [String, Object]),
|
|
599
|
-
__metadata("design:returntype", Promise)
|
|
600
|
-
], TeeOffer.prototype, "getListsForVerification", null);
|
|
601
521
|
__decorate([
|
|
602
522
|
(0, helper_js_1.incrementMethodCall)(),
|
|
603
523
|
__metadata("design:type", Function),
|
|
@@ -658,12 +578,6 @@ __decorate([
|
|
|
658
578
|
__metadata("design:paramtypes", []),
|
|
659
579
|
__metadata("design:returntype", Promise)
|
|
660
580
|
], TeeOffer.prototype, "getSubtype", null);
|
|
661
|
-
__decorate([
|
|
662
|
-
(0, helper_js_1.incrementMethodCall)(),
|
|
663
|
-
__metadata("design:type", Function),
|
|
664
|
-
__metadata("design:paramtypes", []),
|
|
665
|
-
__metadata("design:returntype", Promise)
|
|
666
|
-
], TeeOffer.prototype, "isTeeOfferVerifying", null);
|
|
667
581
|
__decorate([
|
|
668
582
|
(0, helper_js_1.incrementMethodCall)(),
|
|
669
583
|
__metadata("design:type", Function),
|
|
@@ -677,4 +591,4 @@ __decorate([
|
|
|
677
591
|
__metadata("design:returntype", Promise)
|
|
678
592
|
], TeeOffer.prototype, "setSubtype", null);
|
|
679
593
|
exports.default = TeeOffer;
|
|
680
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVlT2ZmZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxzL1RlZU9mZmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBRUEsa0RBYzRCO0FBQzVCLGdEQWdCMkI7QUFDM0IscURBQTZEO0FBQzdELHlFQUE4QztBQVM5QyxrREFBMEQ7QUFDMUQsZ0ZBQXFEO0FBQ3JELGlEQUF5QztBQUN6QyxtREFLZ0M7QUFDaEMsZ0ZBQXFEO0FBQ3JELDZEQUF3RjtBQUN4RixpREFBdUQ7QUFDdkQsaURBQW1EO0FBQ25ELG9GQUF5RDtBQUV6RCxNQUFNLFFBQVE7SUFDSixNQUFNLENBQUMsUUFBUSxDQUF1QjtJQUV2QyxFQUFFLENBQWU7SUFFakIsYUFBYSxDQUFtQjtJQUNoQyxXQUFXLENBQWU7SUFDMUIsU0FBUyxDQUFnQjtJQUV6QixJQUFJLENBQWE7SUFDakIsaUJBQWlCLENBQVU7SUFDM0IsUUFBUSxDQUFVO0lBQ2xCLE9BQU8sQ0FBVztJQUNsQixHQUFHLENBQVU7SUFDYixZQUFZLENBQVU7SUFDdEIsWUFBWSxDQUFVO0lBQ3RCLE9BQU8sQ0FBVztJQUNsQixZQUFZLENBQVc7SUFDdkIsVUFBVSxDQUFlO0lBRWhDLFlBQVksT0FBcUI7UUFDL0IsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN2QixRQUFRLENBQUMsUUFBUSxHQUFHLDhCQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFFSSxTQUFTO1FBQ2QsT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xFLENBQUM7SUFHWSxBQUFOLEtBQUssQ0FBQyxhQUFh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
|
|
594
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVlT2ZmZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxzL1RlZU9mZmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBRUEsa0RBYTRCO0FBQzVCLGdEQWdCMkI7QUFDM0IscURBQTZEO0FBQzdELHlFQUE4QztBQUU5QyxtQ0FBNkM7QUFDN0MsZ0ZBQXFEO0FBQ3JELG1EQUFvRDtBQUNwRCw2REFBd0Y7QUFDeEYsaURBQXVEO0FBQ3ZELGlEQUFtRDtBQUNuRCxvRkFBeUQ7QUFFekQsTUFBTSxRQUFRO0lBQ0osTUFBTSxDQUFDLFFBQVEsQ0FBdUI7SUFFdkMsRUFBRSxDQUFlO0lBRWpCLGFBQWEsQ0FBbUI7SUFDaEMsV0FBVyxDQUFlO0lBQzFCLFNBQVMsQ0FBZ0I7SUFFekIsSUFBSSxDQUFhO0lBQ2pCLGlCQUFpQixDQUFVO0lBQzNCLFFBQVEsQ0FBVTtJQUNsQixPQUFPLENBQVc7SUFDbEIsR0FBRyxDQUFVO0lBQ2IsWUFBWSxDQUFVO0lBQ3RCLFlBQVksQ0FBVTtJQUN0QixPQUFPLENBQVc7SUFDbEIsWUFBWSxDQUFXO0lBQ3ZCLFVBQVUsQ0FBZTtJQUVoQyxZQUFZLE9BQXFCO1FBQy9CLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdkIsUUFBUSxDQUFDLFFBQVEsR0FBRyw4QkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0RSxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBRUksU0FBUztRQUNkLE9BQU8sUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0lBR1ksQUFBTixLQUFLLENBQUMsYUFBYSxDQUN4QixNQUFvQixFQUNwQixTQUFpQixF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
|
|
@@ -7,6 +7,7 @@ exports.S3StorageProvider = void 0;
|
|
|
7
7
|
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
8
8
|
const stream_1 = require("stream");
|
|
9
9
|
const getStreamChunks_js_1 = require("../../utils/helpers/getStreamChunks.js");
|
|
10
|
+
const streamToBuffer_js_1 = require("../../utils/helpers/streamToBuffer.js");
|
|
10
11
|
const path_1 = __importDefault(require("path"));
|
|
11
12
|
const helper_js_1 = require("../../utils/helper.js");
|
|
12
13
|
class S3StorageProvider {
|
|
@@ -47,17 +48,16 @@ class S3StorageProvider {
|
|
|
47
48
|
// For performance & cost optimization
|
|
48
49
|
// https://docs.storj.io/dcs/api-reference/s3-compatible-gateway/multipart-upload/multipart-part-size
|
|
49
50
|
const key = this.applyPrefix(remotePath);
|
|
50
|
-
const body = (0, helper_js_1.isNodeJS)()
|
|
51
|
-
? inputStream
|
|
52
|
-
: new Uint8Array(await inputStream.arrayBuffer());
|
|
53
51
|
if (contentLength >= this.multipartChunkSizeInBytes) {
|
|
54
52
|
return this.multipartUpload(inputStream, key, contentLength, progressListener);
|
|
55
53
|
}
|
|
54
|
+
const body = (0, helper_js_1.isNodeJS)()
|
|
55
|
+
? await (0, streamToBuffer_js_1.streamToBuffer)(inputStream)
|
|
56
|
+
: new Uint8Array(await inputStream.arrayBuffer());
|
|
56
57
|
const putObjectCommand = new client_s3_1.PutObjectCommand({
|
|
57
58
|
Body: body,
|
|
58
59
|
Bucket: this.bucket,
|
|
59
60
|
Key: key,
|
|
60
|
-
ContentLength: contentLength,
|
|
61
61
|
});
|
|
62
62
|
progressListener?.(contentLength, 0);
|
|
63
63
|
await this.s3Client.send(putObjectCommand);
|
|
@@ -207,4 +207,4 @@ class S3StorageProvider {
|
|
|
207
207
|
}
|
|
208
208
|
}
|
|
209
209
|
exports.S3StorageProvider = S3StorageProvider;
|
|
210
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUzNTdG9yYWdlUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3N0b3JhZ2UvUzNTdG9yYWdlUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBYzRCO0FBRTVCLG1DQUFrQztBQUVsQywrRUFBeUU7QUFDekUsNkVBQXVFO0FBRXZFLGdEQUF3QjtBQUN4QixxREFBaUQ7QUFPakQsTUFBYSxpQkFBaUI7SUFDWCxRQUFRLENBQVc7SUFDbkIsTUFBTSxDQUFTO0lBQ2YsTUFBTSxDQUFTO0lBQ2YseUJBQXlCLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxPQUFPO0lBQ3JELGFBQWEsR0FBRyxXQUFXLENBQUM7SUFFN0MsWUFBWSxhQUE2QjtRQUN2QyxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxhQUFhLENBQUM7UUFDbkYsSUFBSSxDQUFDLFdBQVc7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLFNBQVM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFFBQVE7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLE1BQU07WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDcEQsSUFBSSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDaEUsTUFBTSxJQUFJLEtBQUssQ0FDYiwrRUFBK0UsTUFBTSxHQUFHLENBQ3pG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
|
|
@@ -12,7 +12,7 @@ export default class StorageKeyValueAdapter<V extends object> implements IStorag
|
|
|
12
12
|
private readonly logger?;
|
|
13
13
|
constructor(storageAccess: StorageAccess, config?: StorageKeyValueAdapterConfig);
|
|
14
14
|
protected decrypt(encryption: Encryption, key: string): Promise<V | null>;
|
|
15
|
-
protected encrypt(data: V | null, key: string):
|
|
15
|
+
protected encrypt(data: V | null, key: string): Encryption;
|
|
16
16
|
private downloadFromStorage;
|
|
17
17
|
private streamToString;
|
|
18
18
|
private storageUpload;
|
|
@@ -67,7 +67,7 @@ class StorageKeyValueAdapter {
|
|
|
67
67
|
const encryptedValue = this.hasEncryption && privateKey ? await this.encrypt(value, privateKey) : value;
|
|
68
68
|
const buffer = Buffer.from(JSON.stringify(encryptedValue));
|
|
69
69
|
await this.storageProvider.uploadFile(stream_1.Readable.from(buffer), key, buffer.byteLength);
|
|
70
|
-
this.logger?.
|
|
70
|
+
this.logger?.trace({ data: key }, 'Success uploading to storage');
|
|
71
71
|
}
|
|
72
72
|
catch (err) {
|
|
73
73
|
this.logger?.error({ err }, 'Error uploading to storage');
|
|
@@ -77,10 +77,10 @@ class StorageKeyValueAdapter {
|
|
|
77
77
|
async storageDelete(key) {
|
|
78
78
|
try {
|
|
79
79
|
await this.storageProvider.deleteObject(key);
|
|
80
|
-
this.logger?.
|
|
80
|
+
this.logger?.trace({ data: key }, 'Success deleting from storage');
|
|
81
81
|
}
|
|
82
82
|
catch (err) {
|
|
83
|
-
this.logger?.
|
|
83
|
+
this.logger?.trace({ err }, 'Error deleting from storage');
|
|
84
84
|
throw err;
|
|
85
85
|
}
|
|
86
86
|
}
|
|
@@ -90,7 +90,7 @@ class StorageKeyValueAdapter {
|
|
|
90
90
|
}
|
|
91
91
|
try {
|
|
92
92
|
const downloaded = await this.downloadFromStorage(key);
|
|
93
|
-
this.logger?.
|
|
93
|
+
this.logger?.trace({ key }, 'Success download data from storage');
|
|
94
94
|
if (!downloaded) {
|
|
95
95
|
return null;
|
|
96
96
|
}
|
|
@@ -98,7 +98,7 @@ class StorageKeyValueAdapter {
|
|
|
98
98
|
return this.hasEncryption && privateKey ? await this.decrypt(value, privateKey) : value;
|
|
99
99
|
}
|
|
100
100
|
catch (err) {
|
|
101
|
-
this.logger?.
|
|
101
|
+
this.logger?.trace({
|
|
102
102
|
err,
|
|
103
103
|
key,
|
|
104
104
|
}, 'Error download data from storage');
|
|
@@ -115,7 +115,7 @@ class StorageKeyValueAdapter {
|
|
|
115
115
|
return listObjects.filter((obj) => !obj.isFolder);
|
|
116
116
|
}
|
|
117
117
|
catch (err) {
|
|
118
|
-
this.logger?.
|
|
118
|
+
this.logger?.trace({
|
|
119
119
|
err,
|
|
120
120
|
key,
|
|
121
121
|
}, 'Error list objects from storage');
|
|
@@ -136,4 +136,4 @@ class StorageKeyValueAdapter {
|
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
138
|
exports.default = StorageKeyValueAdapter;
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmFnZUtleVZhbHVlQWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvc3RvcmFnZS9TdG9yYWdlS2V5VmFsdWVBZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQWtDO0FBQ2xDLG1EQUF1RjtBQUd2RixvRkFBeUQ7QUFFekQsZ0VBQWlEO0FBQ2pELHVFQUE0QztBQVE1QyxNQUFxQixzQkFBc0I7SUFHeEIsYUFBYSxDQUFVO0lBQ3ZCLGVBQWUsQ0FBbUI7SUFDbEMsTUFBTSxDQUFpQjtJQUV4QyxZQUFZLGFBQTRCLEVBQUUsTUFBcUM7UUFDN0UsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsQ0FBQztZQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNELE1BQU0sRUFBRSxRQUFRLEdBQUcsSUFBSSxFQUFFLGFBQWEsR0FBRyxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQy9ELElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxtQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDckYsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFBLCtCQUFrQixFQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFUyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQXNCLEVBQUUsR0FBVztRQUN6RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQyxz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
|
|
@@ -42,24 +42,44 @@ class FSStorageProvider {
|
|
|
42
42
|
}
|
|
43
43
|
writeWithProgress(inputStream, outputStream, contentLength, progressListener) {
|
|
44
44
|
let bytesWritten = 0;
|
|
45
|
+
let failed = false;
|
|
45
46
|
return new Promise((resolve, reject) => {
|
|
46
|
-
outputStream.
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
progressListener(contentLength, bytesWritten);
|
|
56
|
-
}
|
|
47
|
+
outputStream.once('finish', resolve).once('error', (err) => {
|
|
48
|
+
failed = true;
|
|
49
|
+
if (!inputStream.destroyed)
|
|
50
|
+
inputStream.destroy(err);
|
|
51
|
+
reject(err);
|
|
52
|
+
});
|
|
53
|
+
outputStream.on('drain', () => {
|
|
54
|
+
if (!inputStream.destroyed && inputStream.isPaused && inputStream.isPaused()) {
|
|
55
|
+
inputStream.resume();
|
|
57
56
|
}
|
|
58
|
-
})
|
|
59
|
-
|
|
57
|
+
});
|
|
58
|
+
inputStream.on('data', (chunk) => {
|
|
59
|
+
if (failed || outputStream.destroyed || outputStream.writableEnded)
|
|
60
|
+
return;
|
|
61
|
+
let canContinue = true;
|
|
62
|
+
try {
|
|
63
|
+
canContinue = outputStream.write(chunk);
|
|
64
|
+
}
|
|
65
|
+
catch (err) {
|
|
66
|
+
failed = true;
|
|
67
|
+
if (!inputStream.destroyed)
|
|
68
|
+
inputStream.destroy(err);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
bytesWritten += chunk.length;
|
|
72
|
+
if (progressListener) {
|
|
73
|
+
progressListener(contentLength, bytesWritten);
|
|
74
|
+
}
|
|
75
|
+
if (!canContinue && !inputStream.destroyed)
|
|
76
|
+
inputStream.pause();
|
|
77
|
+
});
|
|
78
|
+
inputStream
|
|
79
|
+
.once('end', () => {
|
|
60
80
|
outputStream.end();
|
|
61
81
|
})
|
|
62
|
-
.
|
|
82
|
+
.once('error', (err) => outputStream.destroy(err));
|
|
63
83
|
});
|
|
64
84
|
}
|
|
65
85
|
async uploadFile(inputStream, remotePath, contentLength, progressListener) {
|
|
@@ -139,4 +159,4 @@ class FSStorageProvider {
|
|
|
139
159
|
}
|
|
140
160
|
}
|
|
141
161
|
exports.FSStorageProvider = FSStorageProvider;
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtc3RvcmFnZS1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvc3RvcmFnZS9mcy1zdG9yYWdlLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsNENBQW9CO0FBQ3BCLDJDQUE2QjtBQUk3QixvREFBc0Q7QUFFdEQsTUFBYSxpQkFBaUI7SUFDWCxNQUFNLENBQVM7SUFDZixNQUFNLENBQVM7SUFFaEMsWUFBWSxXQUEwQjtRQUNwQyxJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO0lBQ25DLENBQUM7SUFFTyxXQUFXLENBQUMsVUFBa0I7UUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU8saUJBQWlCLENBQ3ZCLFdBQTRCLEVBQzVCLFlBQTZCLEVBQzdCLGFBQXFCLEVBQ3JCLGdCQUEyRDtRQUUzRCxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7UUFDckIsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBRW5CLE9BQU8sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDM0MsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQVUsRUFBRSxFQUFFO2dCQUNoRSxNQUFNLEdBQUcsSUFBSSxDQUFDO2dCQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUztvQkFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNyRCxNQUFNLENBQUMsR0FBRyxD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
|