@super-protocol/sdk-js 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/build/BlockchainConnector.d.ts +48 -0
  2. package/build/BlockchainConnector.js +259 -0
  3. package/build/TIIGenerator.d.ts +21 -0
  4. package/build/TIIGenerator.js +251 -0
  5. package/build/constants.d.ts +7 -0
  6. package/build/constants.js +10 -0
  7. package/build/contracts/ActiveOffersList.json +131 -0
  8. package/build/contracts/ActiveOrdersList.json +74 -0
  9. package/build/contracts/Marks.json +79 -0
  10. package/build/contracts/Offers.json +999 -0
  11. package/build/contracts/Orders.json +984 -0
  12. package/build/contracts/Providers.json +440 -0
  13. package/build/contracts/ProvidersOffers.json +254 -0
  14. package/build/contracts/Staking.json +323 -0
  15. package/build/contracts/Superpro.json +197 -0
  16. package/build/contracts/SuperproToken.json +356 -0
  17. package/build/crypto/Crypto.d.ts +37 -0
  18. package/build/crypto/Crypto.js +181 -0
  19. package/build/crypto/index.d.ts +2 -0
  20. package/build/crypto/index.js +7 -0
  21. package/build/crypto/nodejs/AES.d.ts +24 -0
  22. package/build/crypto/nodejs/AES.js +152 -0
  23. package/build/crypto/nodejs/ARIA.d.ts +24 -0
  24. package/build/crypto/nodejs/ARIA.js +151 -0
  25. package/build/crypto/nodejs/ECIES.d.ts +6 -0
  26. package/build/crypto/nodejs/ECIES.js +94 -0
  27. package/build/crypto/nodejs/NativeCrypto.d.ts +54 -0
  28. package/build/crypto/nodejs/NativeCrypto.js +214 -0
  29. package/build/crypto/nodejs/RSA-Hybrid.d.ts +15 -0
  30. package/build/crypto/nodejs/RSA-Hybrid.js +153 -0
  31. package/build/index.d.ts +65 -0
  32. package/build/index.js +117 -0
  33. package/build/logger.d.ts +4 -0
  34. package/build/logger.js +8 -0
  35. package/build/models/Ballot.d.ts +13 -0
  36. package/build/models/Ballot.js +76 -0
  37. package/build/models/Offer.d.ts +70 -0
  38. package/build/models/Offer.js +273 -0
  39. package/build/models/Order.d.ts +125 -0
  40. package/build/models/Order.js +540 -0
  41. package/build/models/Provider.d.ts +40 -0
  42. package/build/models/Provider.js +167 -0
  43. package/build/models/TCB.d.ts +80 -0
  44. package/build/models/TCB.js +315 -0
  45. package/build/models/TeeOffer.d.ts +118 -0
  46. package/build/models/TeeOffer.js +436 -0
  47. package/build/proto/Compression.d.ts +33 -0
  48. package/build/proto/Compression.js +146 -0
  49. package/build/proto/TRI.d.ts +122 -0
  50. package/build/proto/TRI.js +316 -0
  51. package/build/providers/storage/ChunksDownloadDecorator.d.ts +38 -0
  52. package/build/providers/storage/ChunksDownloadDecorator.js +284 -0
  53. package/build/providers/storage/IStorageProvider.d.ts +17 -0
  54. package/build/providers/storage/IStorageProvider.js +2 -0
  55. package/build/providers/storage/StorjStorageProvider.d.ts +26 -0
  56. package/build/providers/storage/StorjStorageProvider.js +389 -0
  57. package/build/providers/storage/getStorageProvider.d.ts +4 -0
  58. package/build/providers/storage/getStorageProvider.js +16 -0
  59. package/build/staticModels/ActiveOffers.d.ts +29 -0
  60. package/build/staticModels/ActiveOffers.js +144 -0
  61. package/build/staticModels/ActiveOrders.d.ts +21 -0
  62. package/build/staticModels/ActiveOrders.js +120 -0
  63. package/build/staticModels/Consensus.d.ts +63 -0
  64. package/build/staticModels/Consensus.js +373 -0
  65. package/build/staticModels/Epochs.d.ts +23 -0
  66. package/build/staticModels/Epochs.js +97 -0
  67. package/build/staticModels/LastBlocks.d.ts +25 -0
  68. package/build/staticModels/LastBlocks.js +96 -0
  69. package/build/staticModels/Marks.d.ts +13 -0
  70. package/build/staticModels/Marks.js +113 -0
  71. package/build/staticModels/OffersFactory.d.ts +37 -0
  72. package/build/staticModels/OffersFactory.js +227 -0
  73. package/build/staticModels/OrdersFactory.d.ts +137 -0
  74. package/build/staticModels/OrdersFactory.js +539 -0
  75. package/build/staticModels/ProviderRegistry.d.ts +81 -0
  76. package/build/staticModels/ProviderRegistry.js +311 -0
  77. package/build/staticModels/Staking.d.ts +26 -0
  78. package/build/staticModels/Staking.js +132 -0
  79. package/build/staticModels/Superpro.d.ts +20 -0
  80. package/build/staticModels/Superpro.js +99 -0
  81. package/build/staticModels/SuperproToken.d.ts +30 -0
  82. package/build/staticModels/SuperproToken.js +125 -0
  83. package/build/staticModels/Suspicious.d.ts +26 -0
  84. package/build/staticModels/Suspicious.js +99 -0
  85. package/build/staticModels/TeeOffersFactory.d.ts +36 -0
  86. package/build/staticModels/TeeOffersFactory.js +206 -0
  87. package/build/staticModels/Voting.d.ts +35 -0
  88. package/build/staticModels/Voting.js +111 -0
  89. package/build/store.d.ts +12 -0
  90. package/build/store.js +13 -0
  91. package/build/types/Ballot.d.ts +75 -0
  92. package/build/types/Ballot.js +49 -0
  93. package/build/types/Epoch.d.ts +21 -0
  94. package/build/types/Epoch.js +18 -0
  95. package/build/types/Events.d.ts +18 -0
  96. package/build/types/Events.js +2 -0
  97. package/build/types/Marks.d.ts +5 -0
  98. package/build/types/Marks.js +9 -0
  99. package/build/types/Offer.d.ts +63 -0
  100. package/build/types/Offer.js +41 -0
  101. package/build/types/Order.d.ts +61 -0
  102. package/build/types/Order.js +36 -0
  103. package/build/types/Origins.d.ts +12 -0
  104. package/build/types/Origins.js +10 -0
  105. package/build/types/Provider.d.ts +25 -0
  106. package/build/types/Provider.js +19 -0
  107. package/build/types/Staking.d.ts +27 -0
  108. package/build/types/Staking.js +22 -0
  109. package/build/types/Superpro.d.ts +24 -0
  110. package/build/types/Superpro.js +29 -0
  111. package/build/types/TcbData.d.ts +26 -0
  112. package/build/types/TcbData.js +21 -0
  113. package/build/types/TeeOffer.d.ts +22 -0
  114. package/build/types/TeeOffer.js +15 -0
  115. package/build/types/Web3.d.ts +26 -0
  116. package/build/types/Web3.js +2 -0
  117. package/build/types/blockchainConnector/StorageAccess.d.ts +8 -0
  118. package/build/types/blockchainConnector/StorageAccess.js +2 -0
  119. package/build/types/storage/StorageAccess.d.ts +6 -0
  120. package/build/types/storage/StorageAccess.js +2 -0
  121. package/build/types/storage/StorageFileAccess.d.ts +5 -0
  122. package/build/types/storage/StorageFileAccess.js +2 -0
  123. package/build/types/storage/StorageObject.d.ts +8 -0
  124. package/build/types/storage/StorageObject.js +2 -0
  125. package/build/utils/NonceTracker.d.ts +12 -0
  126. package/build/utils/NonceTracker.js +84 -0
  127. package/build/utils/TxManager.d.ts +21 -0
  128. package/build/utils/TxManager.js +159 -0
  129. package/build/utils.d.ts +38 -0
  130. package/build/utils.js +195 -0
  131. package/package.json +68 -0
  132. package/readme.md +40 -0
@@ -0,0 +1,389 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
39
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
40
+ var m = o[Symbol.asyncIterator], i;
41
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
42
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
43
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
44
+ };
45
+ var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
46
+ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
47
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
48
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
49
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
50
+ function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
51
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
52
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
53
+ function fulfill(value) { resume("next", value); }
54
+ function reject(value) { resume("throw", value); }
55
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
56
+ };
57
+ var __importDefault = (this && this.__importDefault) || function (mod) {
58
+ return (mod && mod.__esModule) ? mod : { "default": mod };
59
+ };
60
+ Object.defineProperty(exports, "__esModule", { value: true });
61
+ var buffer_1 = require("buffer");
62
+ var utils_1 = require("../../utils");
63
+ var stream_1 = __importDefault(require("stream"));
64
+ var logger_1 = __importDefault(require("../../logger"));
65
+ var ethers_1 = require("ethers");
66
+ var StorJStorageProvider = /** @class */ (function () {
67
+ function StorJStorageProvider(credentials) {
68
+ this.logger = logger_1.default.child({ className: "StorJStorageProvider" });
69
+ if (!(0, utils_1.isNodeJS)()) {
70
+ throw Error("StorageProvider: StorJ is supported only in the node.js execution environment");
71
+ }
72
+ this.bucket = "";
73
+ this.prefix = "";
74
+ if (credentials.bucket) {
75
+ this.bucket = credentials.bucket;
76
+ this.prefix = credentials.prefix;
77
+ }
78
+ else if (credentials.storageId) {
79
+ // back compatibility
80
+ this.bucket = credentials.storageId;
81
+ }
82
+ this.accessToken = credentials.token;
83
+ }
84
+ StorJStorageProvider.prototype.calculateStorageDeposit = function (offer, sizeMb, hours) {
85
+ return __awaiter(this, void 0, void 0, function () {
86
+ var offerInfo, properties;
87
+ return __generator(this, function (_a) {
88
+ switch (_a.label) {
89
+ case 0: return [4 /*yield*/, offer.getInfo()];
90
+ case 1:
91
+ offerInfo = _a.sent();
92
+ properties = JSON.parse(offerInfo.properties);
93
+ return [2 /*return*/, ethers_1.BigNumber.from(properties.priceMbPerHour).mul(sizeMb).mul(hours).toString()];
94
+ }
95
+ });
96
+ });
97
+ };
98
+ StorJStorageProvider.prototype.uploadFile = function (inputStream, remotePath, contentLength, progressListener) {
99
+ var inputStream_1, inputStream_1_1;
100
+ var e_1, _a;
101
+ return __awaiter(this, void 0, void 0, function () {
102
+ var storj, options, project, uploader, totalWritten, buffer, e_1_1, uploadingError_1, abortingError_1;
103
+ return __generator(this, function (_b) {
104
+ switch (_b.label) {
105
+ case 0: return [4 /*yield*/, this.lazyStorj()];
106
+ case 1:
107
+ storj = _b.sent();
108
+ options = new storj.UploadOptions();
109
+ return [4 /*yield*/, this.lazyProject()];
110
+ case 2:
111
+ project = _b.sent();
112
+ return [4 /*yield*/, project.uploadObject(this.bucket, this.prefix + remotePath, options)];
113
+ case 3:
114
+ uploader = _b.sent();
115
+ totalWritten = 0;
116
+ _b.label = 4;
117
+ case 4:
118
+ _b.trys.push([4, 19, , 24]);
119
+ _b.label = 5;
120
+ case 5:
121
+ _b.trys.push([5, 11, 12, 17]);
122
+ inputStream_1 = __asyncValues(inputStream);
123
+ _b.label = 6;
124
+ case 6: return [4 /*yield*/, inputStream_1.next()];
125
+ case 7:
126
+ if (!(inputStream_1_1 = _b.sent(), !inputStream_1_1.done)) return [3 /*break*/, 10];
127
+ buffer = inputStream_1_1.value;
128
+ return [4 /*yield*/, uploader.write(buffer, buffer.length)];
129
+ case 8:
130
+ _b.sent();
131
+ totalWritten += buffer.length;
132
+ if (!!progressListener) {
133
+ progressListener(contentLength, totalWritten);
134
+ }
135
+ _b.label = 9;
136
+ case 9: return [3 /*break*/, 6];
137
+ case 10: return [3 /*break*/, 17];
138
+ case 11:
139
+ e_1_1 = _b.sent();
140
+ e_1 = { error: e_1_1 };
141
+ return [3 /*break*/, 17];
142
+ case 12:
143
+ _b.trys.push([12, , 15, 16]);
144
+ if (!(inputStream_1_1 && !inputStream_1_1.done && (_a = inputStream_1.return))) return [3 /*break*/, 14];
145
+ return [4 /*yield*/, _a.call(inputStream_1)];
146
+ case 13:
147
+ _b.sent();
148
+ _b.label = 14;
149
+ case 14: return [3 /*break*/, 16];
150
+ case 15:
151
+ if (e_1) throw e_1.error;
152
+ return [7 /*endfinally*/];
153
+ case 16: return [7 /*endfinally*/];
154
+ case 17: return [4 /*yield*/, uploader.commit()];
155
+ case 18:
156
+ _b.sent();
157
+ return [3 /*break*/, 24];
158
+ case 19:
159
+ uploadingError_1 = _b.sent();
160
+ _b.label = 20;
161
+ case 20:
162
+ _b.trys.push([20, 22, , 23]);
163
+ return [4 /*yield*/, uploader.abort()];
164
+ case 21:
165
+ _b.sent();
166
+ return [3 /*break*/, 23];
167
+ case 22:
168
+ abortingError_1 = _b.sent();
169
+ logger_1.default.error({ err: abortingError_1 }, "Failed to abort file uploading");
170
+ return [3 /*break*/, 23];
171
+ case 23: throw uploadingError_1;
172
+ case 24: return [2 /*return*/];
173
+ }
174
+ });
175
+ });
176
+ };
177
+ StorJStorageProvider.prototype.downloadFile = function (remotePath, config, progressListener) {
178
+ return __awaiter(this, void 0, void 0, function () {
179
+ var storj, project, length, _a, options, downloader, loader;
180
+ var _this = this;
181
+ return __generator(this, function (_b) {
182
+ switch (_b.label) {
183
+ case 0: return [4 /*yield*/, this.lazyStorj()];
184
+ case 1:
185
+ storj = _b.sent();
186
+ return [4 /*yield*/, this.lazyProject()];
187
+ case 2:
188
+ project = _b.sent();
189
+ _a = config.length;
190
+ if (_a) return [3 /*break*/, 4];
191
+ return [4 /*yield*/, this.getObjectSize(remotePath)];
192
+ case 3:
193
+ _a = (_b.sent());
194
+ _b.label = 4;
195
+ case 4:
196
+ length = _a;
197
+ options = new storj.DownloadOptions(config.offset || 0, length);
198
+ return [4 /*yield*/, project.downloadObject(this.bucket, this.prefix + remotePath, options)];
199
+ case 5:
200
+ downloader = _b.sent();
201
+ loader = function () {
202
+ return __asyncGenerator(this, arguments, function () {
203
+ var readBuffer, current, downloadResult, bytesRead;
204
+ return __generator(this, function (_a) {
205
+ switch (_a.label) {
206
+ case 0:
207
+ readBuffer = buffer_1.Buffer.alloc(StorJStorageProvider.DOWNLOAD_BUFFER_SIZE);
208
+ current = 0;
209
+ _a.label = 1;
210
+ case 1:
211
+ if (!(current < length)) return [3 /*break*/, 5];
212
+ return [4 /*yield*/, __await(downloader.read(readBuffer, readBuffer.length))];
213
+ case 2:
214
+ downloadResult = _a.sent();
215
+ bytesRead = downloadResult.bytes_read;
216
+ current += bytesRead;
217
+ return [4 /*yield*/, __await(buffer_1.Buffer.from(readBuffer.subarray(0, bytesRead)))];
218
+ case 3: return [4 /*yield*/, _a.sent()];
219
+ case 4:
220
+ _a.sent();
221
+ if (!!progressListener) {
222
+ progressListener(length, current);
223
+ }
224
+ return [3 /*break*/, 1];
225
+ case 5: return [2 /*return*/];
226
+ }
227
+ });
228
+ });
229
+ };
230
+ return [2 /*return*/, stream_1.default.Readable.from(loader()).on("close", function () { return __awaiter(_this, void 0, void 0, function () {
231
+ return __generator(this, function (_a) {
232
+ switch (_a.label) {
233
+ case 0: return [4 /*yield*/, downloader.close()];
234
+ case 1:
235
+ _a.sent();
236
+ return [2 /*return*/];
237
+ }
238
+ });
239
+ }); })];
240
+ }
241
+ });
242
+ });
243
+ };
244
+ StorJStorageProvider.prototype.deleteObject = function (remotePath) {
245
+ return __awaiter(this, void 0, void 0, function () {
246
+ var project;
247
+ return __generator(this, function (_a) {
248
+ switch (_a.label) {
249
+ case 0: return [4 /*yield*/, this.lazyProject()];
250
+ case 1:
251
+ project = _a.sent();
252
+ return [4 /*yield*/, project.deleteObject(this.bucket, this.prefix + remotePath)];
253
+ case 2:
254
+ _a.sent();
255
+ return [2 /*return*/];
256
+ }
257
+ });
258
+ });
259
+ };
260
+ StorJStorageProvider.prototype.listObjects = function (remotePath) {
261
+ return __awaiter(this, void 0, void 0, function () {
262
+ var storj, project, objects, result, key, value;
263
+ return __generator(this, function (_a) {
264
+ switch (_a.label) {
265
+ case 0: return [4 /*yield*/, this.lazyStorj()];
266
+ case 1:
267
+ storj = _a.sent();
268
+ return [4 /*yield*/, this.lazyProject()];
269
+ case 2:
270
+ project = _a.sent();
271
+ return [4 /*yield*/, project.listObjects(this.bucket, {
272
+ recursive: true,
273
+ cursor: "",
274
+ prefix: this.prefix + remotePath,
275
+ system: true,
276
+ custom: true,
277
+ })];
278
+ case 3:
279
+ objects = _a.sent();
280
+ result = [];
281
+ for (key in Object.keys(objects)) {
282
+ value = objects[key];
283
+ result.push({
284
+ name: value.key,
285
+ size: value.system.content_length,
286
+ isFolder: value.is_prefix == 1,
287
+ childrenCount: value.custom.count,
288
+ createdAt: new Date(value.system.created * 1000), // TODO: check timezone
289
+ });
290
+ }
291
+ return [2 /*return*/, result];
292
+ }
293
+ });
294
+ });
295
+ };
296
+ StorJStorageProvider.prototype.getObjectSize = function (remotePath) {
297
+ return __awaiter(this, void 0, void 0, function () {
298
+ var project, objectInfo;
299
+ return __generator(this, function (_a) {
300
+ switch (_a.label) {
301
+ case 0: return [4 /*yield*/, this.lazyProject()];
302
+ case 1:
303
+ project = _a.sent();
304
+ return [4 /*yield*/, project.statObject(this.bucket, this.prefix + remotePath)];
305
+ case 2:
306
+ objectInfo = _a.sent();
307
+ return [2 /*return*/, objectInfo.system.content_length];
308
+ }
309
+ });
310
+ });
311
+ };
312
+ StorJStorageProvider.prototype.getLastModified = function (remotePath) {
313
+ return __awaiter(this, void 0, void 0, function () {
314
+ var project, objectInfo;
315
+ return __generator(this, function (_a) {
316
+ switch (_a.label) {
317
+ case 0: return [4 /*yield*/, this.lazyProject()];
318
+ case 1:
319
+ project = _a.sent();
320
+ return [4 /*yield*/, project.statObject(this.bucket, this.prefix + remotePath)];
321
+ case 2:
322
+ objectInfo = _a.sent();
323
+ return [2 /*return*/, new Date(objectInfo.system.created * 1000)];
324
+ }
325
+ });
326
+ });
327
+ };
328
+ StorJStorageProvider.prototype.lazyStorj = function () {
329
+ return __awaiter(this, void 0, void 0, function () {
330
+ var _a;
331
+ return __generator(this, function (_b) {
332
+ switch (_b.label) {
333
+ case 0:
334
+ if (!!this._storj) return [3 /*break*/, 2];
335
+ _a = this;
336
+ return [4 /*yield*/, require("@super-protocol/uplink-nodejs")];
337
+ case 1:
338
+ _a._storj = _b.sent();
339
+ _b.label = 2;
340
+ case 2: return [2 /*return*/, this._storj];
341
+ }
342
+ });
343
+ });
344
+ };
345
+ StorJStorageProvider.prototype.lazyAccess = function () {
346
+ return __awaiter(this, void 0, void 0, function () {
347
+ var storj, uplink, _a;
348
+ return __generator(this, function (_b) {
349
+ switch (_b.label) {
350
+ case 0:
351
+ if (!!this._access) return [3 /*break*/, 3];
352
+ return [4 /*yield*/, this.lazyStorj()];
353
+ case 1:
354
+ storj = _b.sent();
355
+ uplink = new storj.Uplink();
356
+ _a = this;
357
+ return [4 /*yield*/, uplink.parseAccess(this.accessToken)];
358
+ case 2:
359
+ _a._access = _b.sent();
360
+ _b.label = 3;
361
+ case 3: return [2 /*return*/, this._access];
362
+ }
363
+ });
364
+ });
365
+ };
366
+ StorJStorageProvider.prototype.lazyProject = function () {
367
+ return __awaiter(this, void 0, void 0, function () {
368
+ var access, _a;
369
+ return __generator(this, function (_b) {
370
+ switch (_b.label) {
371
+ case 0:
372
+ if (!!this._project) return [3 /*break*/, 3];
373
+ return [4 /*yield*/, this.lazyAccess()];
374
+ case 1:
375
+ access = _b.sent();
376
+ _a = this;
377
+ return [4 /*yield*/, access.openProject()];
378
+ case 2:
379
+ _a._project = _b.sent();
380
+ _b.label = 3;
381
+ case 3: return [2 /*return*/, this._project];
382
+ }
383
+ });
384
+ });
385
+ };
386
+ StorJStorageProvider.DOWNLOAD_BUFFER_SIZE = 4194304; // 4mb
387
+ return StorJStorageProvider;
388
+ }());
389
+ exports.default = StorJStorageProvider;
@@ -0,0 +1,4 @@
1
+ import StorageAccess from "../../types/storage/StorageAccess";
2
+ import IStorageProvider from "./IStorageProvider";
3
+ declare const _default: (storageAccess: StorageAccess) => IStorageProvider;
4
+ export default _default;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var dto_js_1 = require("@super-protocol/dto-js");
7
+ var StorjStorageProvider_1 = __importDefault(require("./StorjStorageProvider"));
8
+ exports.default = (function (storageAccess) {
9
+ var key = storageAccess.storageType;
10
+ switch (key) {
11
+ case dto_js_1.StorageType.StorJ:
12
+ return new StorjStorageProvider_1.default(storageAccess.credentials);
13
+ default:
14
+ throw Error("Unsupported storageType ".concat(key));
15
+ }
16
+ });
@@ -0,0 +1,29 @@
1
+ import { BigNumber } from "ethers";
2
+ import { TransactionOptions } from "../types/Web3";
3
+ declare class ActiveOffers {
4
+ private static contract;
5
+ private static logger;
6
+ static offers?: string[];
7
+ static get address(): string;
8
+ /**
9
+ * Checks if contract has been initialized, if not - initialize contract
10
+ */
11
+ private static checkInit;
12
+ static getListOfActiveOffersSize(): Promise<BigNumber>;
13
+ static getActiveOffersEventsQueueLength(): Promise<BigNumber>;
14
+ /**
15
+ * Function returns ids of active offers (value and TEE)
16
+ * Attention! Check active offers events queue length before calling this function, for actualy status it should be equal to 0.
17
+ * @param begin The first element of range.
18
+ * @param end One past the final element in the range.
19
+ * @returns {Promise<string[]>}
20
+ */
21
+ static getListOfActiveOffersRange(begin?: BigNumber | number, end?: BigNumber | number): Promise<string[]>;
22
+ /**
23
+ * Function updates information about the list of current offers
24
+ * @param maxProcessedEvents - maximum number of events to process (affects gas cost of operation)
25
+ * @param transactionOptions - object what contains alternative action account or gas limit (optional)
26
+ */
27
+ static updateListOfActiveOffers(maxProcessedEvents: number, transactionOptions?: TransactionOptions): Promise<void>;
28
+ }
29
+ export default ActiveOffers;
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ var store_1 = __importDefault(require("../store"));
43
+ var logger_1 = __importDefault(require("../logger"));
44
+ var ActiveOffersList_json_1 = __importDefault(require("../contracts/ActiveOffersList.json"));
45
+ var utils_1 = require("../utils");
46
+ var Superpro_1 = __importDefault(require("./Superpro"));
47
+ var TxManager_1 = __importDefault(require("../utils/TxManager"));
48
+ var ActiveOffers = /** @class */ (function () {
49
+ function ActiveOffers() {
50
+ }
51
+ Object.defineProperty(ActiveOffers, "address", {
52
+ get: function () {
53
+ return Superpro_1.default.address;
54
+ },
55
+ enumerable: false,
56
+ configurable: true
57
+ });
58
+ /**
59
+ * Checks if contract has been initialized, if not - initialize contract
60
+ */
61
+ ActiveOffers.checkInit = function (transactionOptions) {
62
+ if (transactionOptions === null || transactionOptions === void 0 ? void 0 : transactionOptions.web3) {
63
+ (0, utils_1.checkIfInitialized)();
64
+ return new transactionOptions.web3.eth.Contract(ActiveOffersList_json_1.default.abi, Superpro_1.default.address);
65
+ }
66
+ if (this.contract)
67
+ return this.contract;
68
+ (0, utils_1.checkIfInitialized)();
69
+ this.logger = logger_1.default.child({ className: "ActiveOffers" });
70
+ return (this.contract = new store_1.default.web3.eth.Contract(ActiveOffersList_json_1.default.abi, Superpro_1.default.address));
71
+ };
72
+ ActiveOffers.getListOfActiveOffersSize = function () {
73
+ return __awaiter(this, void 0, void 0, function () {
74
+ return __generator(this, function (_a) {
75
+ switch (_a.label) {
76
+ case 0:
77
+ this.checkInit();
78
+ return [4 /*yield*/, this.contract.methods.getListOfActiveOffersSize().call()];
79
+ case 1: return [2 /*return*/, _a.sent()];
80
+ }
81
+ });
82
+ });
83
+ };
84
+ ActiveOffers.getActiveOffersEventsQueueLength = function () {
85
+ return __awaiter(this, void 0, void 0, function () {
86
+ return __generator(this, function (_a) {
87
+ this.checkInit();
88
+ return [2 /*return*/, this.contract.methods.getActiveOffersEventsQueueLength().call()];
89
+ });
90
+ });
91
+ };
92
+ /**
93
+ * Function returns ids of active offers (value and TEE)
94
+ * Attention! Check active offers events queue length before calling this function, for actualy status it should be equal to 0.
95
+ * @param begin The first element of range.
96
+ * @param end One past the final element in the range.
97
+ * @returns {Promise<string[]>}
98
+ */
99
+ ActiveOffers.getListOfActiveOffersRange = function (begin, end) {
100
+ return __awaiter(this, void 0, void 0, function () {
101
+ var logger, _a;
102
+ return __generator(this, function (_b) {
103
+ switch (_b.label) {
104
+ case 0:
105
+ this.checkInit();
106
+ logger = this.logger.child({ method: "getListOfActiveOffersRange" });
107
+ begin = begin !== null && begin !== void 0 ? begin : 0;
108
+ if (!(end !== null && end !== void 0)) return [3 /*break*/, 1];
109
+ _a = end;
110
+ return [3 /*break*/, 3];
111
+ case 1: return [4 /*yield*/, this.contract.methods.getListOfActiveOffersSize().call()];
112
+ case 2:
113
+ _a = (_b.sent());
114
+ _b.label = 3;
115
+ case 3:
116
+ end = _a;
117
+ return [4 /*yield*/, this.contract.methods.getListOfActiveOffersRange(begin, end).call()];
118
+ case 4: return [2 /*return*/, _b.sent()];
119
+ }
120
+ });
121
+ });
122
+ };
123
+ /**
124
+ * Function updates information about the list of current offers
125
+ * @param maxProcessedEvents - maximum number of events to process (affects gas cost of operation)
126
+ * @param transactionOptions - object what contains alternative action account or gas limit (optional)
127
+ */
128
+ ActiveOffers.updateListOfActiveOffers = function (maxProcessedEvents, transactionOptions) {
129
+ return __awaiter(this, void 0, void 0, function () {
130
+ return __generator(this, function (_a) {
131
+ switch (_a.label) {
132
+ case 0:
133
+ this.checkInit();
134
+ return [4 /*yield*/, TxManager_1.default.execute(this.contract.methods.updateListOfActiveOffers, [maxProcessedEvents], transactionOptions)];
135
+ case 1:
136
+ _a.sent();
137
+ return [2 /*return*/];
138
+ }
139
+ });
140
+ });
141
+ };
142
+ return ActiveOffers;
143
+ }());
144
+ exports.default = ActiveOffers;
@@ -0,0 +1,21 @@
1
+ import { BigNumber } from "ethers";
2
+ declare class ActiveOrders {
3
+ private static contract;
4
+ private static logger;
5
+ static get address(): string;
6
+ /**
7
+ * Checks if contract has been initialized, if not - initialize contract
8
+ */
9
+ private static checkInit;
10
+ /**
11
+ * Function returns amount of active orders
12
+ * @returns {Promise<BigNumber>}
13
+ */
14
+ static getListOfActiveOrdersSize(): Promise<BigNumber>;
15
+ /**
16
+ * Function returns ids of active orders
17
+ * @returns {Promise<string[]>}
18
+ */
19
+ static getListOfActiveOrdersRange(begin?: BigNumber | number, end?: BigNumber | number): Promise<string[]>;
20
+ }
21
+ export default ActiveOrders;