@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.
- package/build/BlockchainConnector.d.ts +48 -0
- package/build/BlockchainConnector.js +259 -0
- package/build/TIIGenerator.d.ts +21 -0
- package/build/TIIGenerator.js +251 -0
- package/build/constants.d.ts +7 -0
- package/build/constants.js +10 -0
- package/build/contracts/ActiveOffersList.json +131 -0
- package/build/contracts/ActiveOrdersList.json +74 -0
- package/build/contracts/Marks.json +79 -0
- package/build/contracts/Offers.json +999 -0
- package/build/contracts/Orders.json +984 -0
- package/build/contracts/Providers.json +440 -0
- package/build/contracts/ProvidersOffers.json +254 -0
- package/build/contracts/Staking.json +323 -0
- package/build/contracts/Superpro.json +197 -0
- package/build/contracts/SuperproToken.json +356 -0
- package/build/crypto/Crypto.d.ts +37 -0
- package/build/crypto/Crypto.js +181 -0
- package/build/crypto/index.d.ts +2 -0
- package/build/crypto/index.js +7 -0
- package/build/crypto/nodejs/AES.d.ts +24 -0
- package/build/crypto/nodejs/AES.js +152 -0
- package/build/crypto/nodejs/ARIA.d.ts +24 -0
- package/build/crypto/nodejs/ARIA.js +151 -0
- package/build/crypto/nodejs/ECIES.d.ts +6 -0
- package/build/crypto/nodejs/ECIES.js +94 -0
- package/build/crypto/nodejs/NativeCrypto.d.ts +54 -0
- package/build/crypto/nodejs/NativeCrypto.js +214 -0
- package/build/crypto/nodejs/RSA-Hybrid.d.ts +15 -0
- package/build/crypto/nodejs/RSA-Hybrid.js +153 -0
- package/build/index.d.ts +65 -0
- package/build/index.js +117 -0
- package/build/logger.d.ts +4 -0
- package/build/logger.js +8 -0
- package/build/models/Ballot.d.ts +13 -0
- package/build/models/Ballot.js +76 -0
- package/build/models/Offer.d.ts +70 -0
- package/build/models/Offer.js +273 -0
- package/build/models/Order.d.ts +125 -0
- package/build/models/Order.js +540 -0
- package/build/models/Provider.d.ts +40 -0
- package/build/models/Provider.js +167 -0
- package/build/models/TCB.d.ts +80 -0
- package/build/models/TCB.js +315 -0
- package/build/models/TeeOffer.d.ts +118 -0
- package/build/models/TeeOffer.js +436 -0
- package/build/proto/Compression.d.ts +33 -0
- package/build/proto/Compression.js +146 -0
- package/build/proto/TRI.d.ts +122 -0
- package/build/proto/TRI.js +316 -0
- package/build/providers/storage/ChunksDownloadDecorator.d.ts +38 -0
- package/build/providers/storage/ChunksDownloadDecorator.js +284 -0
- package/build/providers/storage/IStorageProvider.d.ts +17 -0
- package/build/providers/storage/IStorageProvider.js +2 -0
- package/build/providers/storage/StorjStorageProvider.d.ts +26 -0
- package/build/providers/storage/StorjStorageProvider.js +389 -0
- package/build/providers/storage/getStorageProvider.d.ts +4 -0
- package/build/providers/storage/getStorageProvider.js +16 -0
- package/build/staticModels/ActiveOffers.d.ts +29 -0
- package/build/staticModels/ActiveOffers.js +144 -0
- package/build/staticModels/ActiveOrders.d.ts +21 -0
- package/build/staticModels/ActiveOrders.js +120 -0
- package/build/staticModels/Consensus.d.ts +63 -0
- package/build/staticModels/Consensus.js +373 -0
- package/build/staticModels/Epochs.d.ts +23 -0
- package/build/staticModels/Epochs.js +97 -0
- package/build/staticModels/LastBlocks.d.ts +25 -0
- package/build/staticModels/LastBlocks.js +96 -0
- package/build/staticModels/Marks.d.ts +13 -0
- package/build/staticModels/Marks.js +113 -0
- package/build/staticModels/OffersFactory.d.ts +37 -0
- package/build/staticModels/OffersFactory.js +227 -0
- package/build/staticModels/OrdersFactory.d.ts +137 -0
- package/build/staticModels/OrdersFactory.js +539 -0
- package/build/staticModels/ProviderRegistry.d.ts +81 -0
- package/build/staticModels/ProviderRegistry.js +311 -0
- package/build/staticModels/Staking.d.ts +26 -0
- package/build/staticModels/Staking.js +132 -0
- package/build/staticModels/Superpro.d.ts +20 -0
- package/build/staticModels/Superpro.js +99 -0
- package/build/staticModels/SuperproToken.d.ts +30 -0
- package/build/staticModels/SuperproToken.js +125 -0
- package/build/staticModels/Suspicious.d.ts +26 -0
- package/build/staticModels/Suspicious.js +99 -0
- package/build/staticModels/TeeOffersFactory.d.ts +36 -0
- package/build/staticModels/TeeOffersFactory.js +206 -0
- package/build/staticModels/Voting.d.ts +35 -0
- package/build/staticModels/Voting.js +111 -0
- package/build/store.d.ts +12 -0
- package/build/store.js +13 -0
- package/build/types/Ballot.d.ts +75 -0
- package/build/types/Ballot.js +49 -0
- package/build/types/Epoch.d.ts +21 -0
- package/build/types/Epoch.js +18 -0
- package/build/types/Events.d.ts +18 -0
- package/build/types/Events.js +2 -0
- package/build/types/Marks.d.ts +5 -0
- package/build/types/Marks.js +9 -0
- package/build/types/Offer.d.ts +63 -0
- package/build/types/Offer.js +41 -0
- package/build/types/Order.d.ts +61 -0
- package/build/types/Order.js +36 -0
- package/build/types/Origins.d.ts +12 -0
- package/build/types/Origins.js +10 -0
- package/build/types/Provider.d.ts +25 -0
- package/build/types/Provider.js +19 -0
- package/build/types/Staking.d.ts +27 -0
- package/build/types/Staking.js +22 -0
- package/build/types/Superpro.d.ts +24 -0
- package/build/types/Superpro.js +29 -0
- package/build/types/TcbData.d.ts +26 -0
- package/build/types/TcbData.js +21 -0
- package/build/types/TeeOffer.d.ts +22 -0
- package/build/types/TeeOffer.js +15 -0
- package/build/types/Web3.d.ts +26 -0
- package/build/types/Web3.js +2 -0
- package/build/types/blockchainConnector/StorageAccess.d.ts +8 -0
- package/build/types/blockchainConnector/StorageAccess.js +2 -0
- package/build/types/storage/StorageAccess.d.ts +6 -0
- package/build/types/storage/StorageAccess.js +2 -0
- package/build/types/storage/StorageFileAccess.d.ts +5 -0
- package/build/types/storage/StorageFileAccess.js +2 -0
- package/build/types/storage/StorageObject.d.ts +8 -0
- package/build/types/storage/StorageObject.js +2 -0
- package/build/utils/NonceTracker.d.ts +12 -0
- package/build/utils/NonceTracker.js +84 -0
- package/build/utils/TxManager.d.ts +21 -0
- package/build/utils/TxManager.js +159 -0
- package/build/utils.d.ts +38 -0
- package/build/utils.js +195 -0
- package/package.json +68 -0
- package/readme.md +40 -0
|
@@ -0,0 +1,540 @@
|
|
|
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 Order_1 = require("../types/Order");
|
|
43
|
+
var logger_1 = __importDefault(require("../logger"));
|
|
44
|
+
var Orders_json_1 = __importDefault(require("../contracts/Orders.json"));
|
|
45
|
+
var store_1 = __importDefault(require("../store"));
|
|
46
|
+
var utils_1 = require("../utils");
|
|
47
|
+
var Origins_1 = require("../types/Origins");
|
|
48
|
+
var utils_2 = require("ethers/lib/utils");
|
|
49
|
+
var Superpro_1 = __importDefault(require("../staticModels/Superpro"));
|
|
50
|
+
var TxManager_1 = __importDefault(require("../utils/TxManager"));
|
|
51
|
+
var Order = /** @class */ (function () {
|
|
52
|
+
function Order(orderId) {
|
|
53
|
+
(0, utils_1.checkIfInitialized)();
|
|
54
|
+
this.id = orderId;
|
|
55
|
+
if (!Order.contract) {
|
|
56
|
+
Order.contract = new store_1.default.web3.eth.Contract(Orders_json_1.default.abi, Superpro_1.default.address);
|
|
57
|
+
}
|
|
58
|
+
this.logger = logger_1.default.child({ className: "Order", orderId: this.id });
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Checks if contract has been initialized, if not - initialize contract
|
|
62
|
+
*/
|
|
63
|
+
Order.prototype.checkInitOrder = function (transactionOptions) {
|
|
64
|
+
if (transactionOptions === null || transactionOptions === void 0 ? void 0 : transactionOptions.web3) {
|
|
65
|
+
(0, utils_1.checkIfInitialized)();
|
|
66
|
+
return new transactionOptions.web3.eth.Contract(Orders_json_1.default.abi, Superpro_1.default.address);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Check if order exist
|
|
71
|
+
*/
|
|
72
|
+
Order.prototype.isExist = function () {
|
|
73
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
74
|
+
return __generator(this, function (_a) {
|
|
75
|
+
switch (_a.label) {
|
|
76
|
+
case 0: return [4 /*yield*/, Order.contract.methods.isOrderValid(this.id).call()];
|
|
77
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* Function for fetching order info from blockchain
|
|
84
|
+
*/
|
|
85
|
+
Order.prototype.getOrderInfo = function () {
|
|
86
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
87
|
+
var orderInfoParams;
|
|
88
|
+
return __generator(this, function (_a) {
|
|
89
|
+
switch (_a.label) {
|
|
90
|
+
case 0: return [4 /*yield*/, Order.contract.methods.getOrder(this.id).call()];
|
|
91
|
+
case 1:
|
|
92
|
+
orderInfoParams = _a.sent();
|
|
93
|
+
return [2 /*return*/, (this.orderInfo = (0, utils_1.tupleToObject)(orderInfoParams[1], Order_1.OrderInfoStructure))];
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
};
|
|
98
|
+
Order.prototype.getConsumer = function () {
|
|
99
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
100
|
+
var orderInfoParams;
|
|
101
|
+
return __generator(this, function (_a) {
|
|
102
|
+
switch (_a.label) {
|
|
103
|
+
case 0: return [4 /*yield*/, Order.contract.methods.getOrder(this.id).call()];
|
|
104
|
+
case 1:
|
|
105
|
+
orderInfoParams = _a.sent();
|
|
106
|
+
this.consumer = orderInfoParams[0];
|
|
107
|
+
return [2 /*return*/, this.consumer];
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* Function for fetching order result from blockchain
|
|
114
|
+
*/
|
|
115
|
+
Order.prototype.getOrderResult = function () {
|
|
116
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
117
|
+
var orderInfoParams, result;
|
|
118
|
+
return __generator(this, function (_a) {
|
|
119
|
+
switch (_a.label) {
|
|
120
|
+
case 0: return [4 /*yield*/, Order.contract.methods.getOrder(this.id).call()];
|
|
121
|
+
case 1:
|
|
122
|
+
orderInfoParams = _a.sent();
|
|
123
|
+
result = ['', '', orderInfoParams[2][1]];
|
|
124
|
+
if (orderInfoParams[1][4] === Order_1.OrderStatus.Error)
|
|
125
|
+
result[1] = orderInfoParams[2][0];
|
|
126
|
+
else
|
|
127
|
+
result[0] = orderInfoParams[2][0];
|
|
128
|
+
return [2 /*return*/, this.orderResult = (0, utils_1.tupleToObject)(result, Order_1.OrderResultStructure)];
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Function for fetching sub orders from blockchain
|
|
135
|
+
*/
|
|
136
|
+
Order.prototype.getSubOrders = function () {
|
|
137
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
138
|
+
var _a;
|
|
139
|
+
return __generator(this, function (_b) {
|
|
140
|
+
switch (_b.label) {
|
|
141
|
+
case 0:
|
|
142
|
+
_a = this;
|
|
143
|
+
return [4 /*yield*/, Order.contract.methods.getOrderSubOrders(this.id).call()];
|
|
144
|
+
case 1:
|
|
145
|
+
_a.subOrders = _b.sent();
|
|
146
|
+
return [2 /*return*/, this.subOrders];
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* Function for fetching parent order from blockchain
|
|
153
|
+
*/
|
|
154
|
+
Order.prototype.getParentOrder = function () {
|
|
155
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
156
|
+
var _a;
|
|
157
|
+
return __generator(this, function (_b) {
|
|
158
|
+
switch (_b.label) {
|
|
159
|
+
case 0:
|
|
160
|
+
_a = this;
|
|
161
|
+
return [4 /*yield*/, Order.contract.methods.getOrderParentOrder(this.id).call()];
|
|
162
|
+
case 1:
|
|
163
|
+
_a.parentOrder = _b.sent();
|
|
164
|
+
return [2 /*return*/, this.parentOrder];
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
};
|
|
169
|
+
/**
|
|
170
|
+
* Function for fetching order deposit spent from blockchain
|
|
171
|
+
*/
|
|
172
|
+
Order.prototype.getDepositSpent = function () {
|
|
173
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
174
|
+
return __generator(this, function (_a) {
|
|
175
|
+
return [2 /*return*/, Order.contract.methods.getDepositSpent(this.id).call()];
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
};
|
|
179
|
+
/**
|
|
180
|
+
* Fetch new Origins (createdDate, createdBy, modifiedDate and modifiedBy)
|
|
181
|
+
*/
|
|
182
|
+
Order.prototype.getOrigins = function () {
|
|
183
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
184
|
+
var origins;
|
|
185
|
+
return __generator(this, function (_a) {
|
|
186
|
+
switch (_a.label) {
|
|
187
|
+
case 0: return [4 /*yield*/, Order.contract.methods.getOrderOrigins(this.id).call()];
|
|
188
|
+
case 1:
|
|
189
|
+
origins = _a.sent();
|
|
190
|
+
// Converts blockchain array into object
|
|
191
|
+
origins = (0, utils_1.tupleToObject)(origins, Origins_1.OriginsStructure);
|
|
192
|
+
// Convert blockchain time seconds to js time milliseconds
|
|
193
|
+
origins.createdDate = +origins.createdDate * 1000;
|
|
194
|
+
origins.modifiedDate = +origins.modifiedDate * 1000;
|
|
195
|
+
return [2 /*return*/, (this.origins = origins)];
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
};
|
|
200
|
+
/**
|
|
201
|
+
* Function for fetching parent order from blockchain
|
|
202
|
+
*/
|
|
203
|
+
Order.prototype.getAwaitingPayment = function () {
|
|
204
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
205
|
+
return __generator(this, function (_a) {
|
|
206
|
+
return [2 /*return*/, Order.contract.methods.getAwaitingPayment(this.id).call()];
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
};
|
|
210
|
+
/**
|
|
211
|
+
* Function for fetching start of processing date
|
|
212
|
+
*/
|
|
213
|
+
Order.prototype.getStartDate = function () {
|
|
214
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
215
|
+
return __generator(this, function (_a) {
|
|
216
|
+
return [2 /*return*/, Order.contract.methods.getStartDate(this.id).call()];
|
|
217
|
+
});
|
|
218
|
+
});
|
|
219
|
+
};
|
|
220
|
+
/**
|
|
221
|
+
* Function for fetching parent order from blockchain
|
|
222
|
+
*/
|
|
223
|
+
Order.prototype.setAwaitingPayment = function (value, transactionOptions) {
|
|
224
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
225
|
+
return __generator(this, function (_a) {
|
|
226
|
+
switch (_a.label) {
|
|
227
|
+
case 0:
|
|
228
|
+
transactionOptions !== null && transactionOptions !== void 0 ? transactionOptions : this.checkInitOrder(transactionOptions);
|
|
229
|
+
(0, utils_1.checkIfActionAccountInitialized)(transactionOptions);
|
|
230
|
+
return [4 /*yield*/, TxManager_1.default.execute(Order.contract.methods.setAwaitingPayment, [this.id, value], transactionOptions)];
|
|
231
|
+
case 1:
|
|
232
|
+
_a.sent();
|
|
233
|
+
return [2 /*return*/];
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
});
|
|
237
|
+
};
|
|
238
|
+
/**
|
|
239
|
+
* Updates order price
|
|
240
|
+
*/
|
|
241
|
+
Order.prototype.updateOrderPrice = function (price, transactionOptions) {
|
|
242
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
243
|
+
return __generator(this, function (_a) {
|
|
244
|
+
switch (_a.label) {
|
|
245
|
+
case 0:
|
|
246
|
+
transactionOptions !== null && transactionOptions !== void 0 ? transactionOptions : this.checkInitOrder(transactionOptions);
|
|
247
|
+
(0, utils_1.checkIfActionAccountInitialized)(transactionOptions);
|
|
248
|
+
return [4 /*yield*/, TxManager_1.default.execute(Order.contract.methods.updateOrderPrice, [this.id, price], transactionOptions)];
|
|
249
|
+
case 1:
|
|
250
|
+
_a.sent();
|
|
251
|
+
return [2 /*return*/];
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
});
|
|
255
|
+
};
|
|
256
|
+
/**
|
|
257
|
+
* Sets deposit spent
|
|
258
|
+
*/
|
|
259
|
+
Order.prototype.setDepositSpent = function (value, transactionOptions) {
|
|
260
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
261
|
+
return __generator(this, function (_a) {
|
|
262
|
+
switch (_a.label) {
|
|
263
|
+
case 0:
|
|
264
|
+
transactionOptions !== null && transactionOptions !== void 0 ? transactionOptions : this.checkInitOrder(transactionOptions);
|
|
265
|
+
(0, utils_1.checkIfActionAccountInitialized)(transactionOptions);
|
|
266
|
+
return [4 /*yield*/, TxManager_1.default.execute(Order.contract.methods.setDepositSpent, [this.id, value], transactionOptions)];
|
|
267
|
+
case 1:
|
|
268
|
+
_a.sent();
|
|
269
|
+
return [2 /*return*/];
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
});
|
|
273
|
+
};
|
|
274
|
+
/**
|
|
275
|
+
* Function for updating status of contract
|
|
276
|
+
*/
|
|
277
|
+
Order.prototype.updateStatus = function (status, price, transactionOptions) {
|
|
278
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
279
|
+
return __generator(this, function (_a) {
|
|
280
|
+
switch (_a.label) {
|
|
281
|
+
case 0:
|
|
282
|
+
transactionOptions !== null && transactionOptions !== void 0 ? transactionOptions : this.checkInitOrder(transactionOptions);
|
|
283
|
+
(0, utils_1.checkIfActionAccountInitialized)(transactionOptions);
|
|
284
|
+
if (!(status === Order_1.OrderStatus.Processing)) return [3 /*break*/, 2];
|
|
285
|
+
return [4 /*yield*/, TxManager_1.default.execute(Order.contract.methods.processOrder, [this.id], transactionOptions)];
|
|
286
|
+
case 1:
|
|
287
|
+
_a.sent();
|
|
288
|
+
_a.label = 2;
|
|
289
|
+
case 2:
|
|
290
|
+
if (this.orderInfo)
|
|
291
|
+
this.orderInfo.status = status;
|
|
292
|
+
return [2 /*return*/];
|
|
293
|
+
}
|
|
294
|
+
});
|
|
295
|
+
});
|
|
296
|
+
};
|
|
297
|
+
/**
|
|
298
|
+
* Function for updating status of contract
|
|
299
|
+
*/
|
|
300
|
+
Order.prototype.cancelOrder = function (transactionOptions) {
|
|
301
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
302
|
+
return __generator(this, function (_a) {
|
|
303
|
+
switch (_a.label) {
|
|
304
|
+
case 0:
|
|
305
|
+
transactionOptions !== null && transactionOptions !== void 0 ? transactionOptions : this.checkInitOrder(transactionOptions);
|
|
306
|
+
(0, utils_1.checkIfActionAccountInitialized)(transactionOptions);
|
|
307
|
+
return [4 /*yield*/, TxManager_1.default.execute(Order.contract.methods.cancelOrder, [this.id], transactionOptions)];
|
|
308
|
+
case 1:
|
|
309
|
+
_a.sent();
|
|
310
|
+
return [2 /*return*/];
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
});
|
|
314
|
+
};
|
|
315
|
+
/**
|
|
316
|
+
* Starts suspended order
|
|
317
|
+
*/
|
|
318
|
+
Order.prototype.start = function (transactionOptions) {
|
|
319
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
320
|
+
return __generator(this, function (_a) {
|
|
321
|
+
switch (_a.label) {
|
|
322
|
+
case 0:
|
|
323
|
+
transactionOptions !== null && transactionOptions !== void 0 ? transactionOptions : this.checkInitOrder(transactionOptions);
|
|
324
|
+
(0, utils_1.checkIfActionAccountInitialized)(transactionOptions);
|
|
325
|
+
return [4 /*yield*/, TxManager_1.default.execute(Order.contract.methods.startOrder, [this.id], transactionOptions)];
|
|
326
|
+
case 1:
|
|
327
|
+
_a.sent();
|
|
328
|
+
return [2 /*return*/];
|
|
329
|
+
}
|
|
330
|
+
});
|
|
331
|
+
});
|
|
332
|
+
};
|
|
333
|
+
/**
|
|
334
|
+
* Updates order result
|
|
335
|
+
*/
|
|
336
|
+
Order.prototype.updateOrderResult = function (encryptedResult, transactionOptions) {
|
|
337
|
+
if (encryptedResult === void 0) { encryptedResult = ""; }
|
|
338
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
339
|
+
return __generator(this, function (_a) {
|
|
340
|
+
switch (_a.label) {
|
|
341
|
+
case 0:
|
|
342
|
+
transactionOptions !== null && transactionOptions !== void 0 ? transactionOptions : this.checkInitOrder(transactionOptions);
|
|
343
|
+
(0, utils_1.checkIfActionAccountInitialized)(transactionOptions);
|
|
344
|
+
return [4 /*yield*/, TxManager_1.default.execute(Order.contract.methods.updateOrderResult, [this.id, encryptedResult], transactionOptions)];
|
|
345
|
+
case 1:
|
|
346
|
+
_a.sent();
|
|
347
|
+
return [2 /*return*/];
|
|
348
|
+
}
|
|
349
|
+
});
|
|
350
|
+
});
|
|
351
|
+
};
|
|
352
|
+
/**
|
|
353
|
+
* Completes order
|
|
354
|
+
*/
|
|
355
|
+
Order.prototype.complete = function (status, encryptedResult, encryptedError, // for SDK compatibility
|
|
356
|
+
transactionOptions) {
|
|
357
|
+
if (encryptedResult === void 0) { encryptedResult = ""; }
|
|
358
|
+
if (encryptedError === void 0) { encryptedError = ""; }
|
|
359
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
360
|
+
return __generator(this, function (_a) {
|
|
361
|
+
switch (_a.label) {
|
|
362
|
+
case 0:
|
|
363
|
+
transactionOptions !== null && transactionOptions !== void 0 ? transactionOptions : this.checkInitOrder(transactionOptions);
|
|
364
|
+
(0, utils_1.checkIfActionAccountInitialized)(transactionOptions);
|
|
365
|
+
return [4 /*yield*/, TxManager_1.default.execute(Order.contract.methods.completeOrder, [this.id, status, status === Order_1.OrderStatus.Error ? encryptedError : encryptedResult], transactionOptions)];
|
|
366
|
+
case 1:
|
|
367
|
+
_a.sent();
|
|
368
|
+
return [2 /*return*/];
|
|
369
|
+
}
|
|
370
|
+
});
|
|
371
|
+
});
|
|
372
|
+
};
|
|
373
|
+
/**
|
|
374
|
+
* Function for creating sub orders for current order
|
|
375
|
+
* @param subOrderInfo - order info for new subOrder
|
|
376
|
+
* @param blocking - is sub order blocking
|
|
377
|
+
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
378
|
+
* @returns {Promise<void>} - Does not return address of created contract!
|
|
379
|
+
*/
|
|
380
|
+
Order.prototype.createSubOrder = function (subOrderInfo, blocking, externalId, holdSum, transactionOptions) {
|
|
381
|
+
if (externalId === void 0) { externalId = "default"; }
|
|
382
|
+
if (holdSum === void 0) { holdSum = '0'; }
|
|
383
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
384
|
+
var tupleSubOrder, formattedExternalId, params;
|
|
385
|
+
return __generator(this, function (_a) {
|
|
386
|
+
switch (_a.label) {
|
|
387
|
+
case 0:
|
|
388
|
+
transactionOptions !== null && transactionOptions !== void 0 ? transactionOptions : this.checkInitOrder(transactionOptions);
|
|
389
|
+
(0, utils_1.checkIfActionAccountInitialized)(transactionOptions);
|
|
390
|
+
tupleSubOrder = (0, utils_1.objectToTuple)(subOrderInfo, Order_1.OrderInfoStructure);
|
|
391
|
+
formattedExternalId = (0, utils_2.formatBytes32String)(externalId);
|
|
392
|
+
params = {
|
|
393
|
+
blockParentOrder: blocking,
|
|
394
|
+
externalId: formattedExternalId,
|
|
395
|
+
holdSum: holdSum,
|
|
396
|
+
};
|
|
397
|
+
return [4 /*yield*/, TxManager_1.default.execute(Order.contract.methods.createSubOrder, [this.id, tupleSubOrder, params], transactionOptions)];
|
|
398
|
+
case 1:
|
|
399
|
+
_a.sent();
|
|
400
|
+
return [2 /*return*/];
|
|
401
|
+
}
|
|
402
|
+
});
|
|
403
|
+
});
|
|
404
|
+
};
|
|
405
|
+
/**
|
|
406
|
+
* Function for creating pack of sub orders (wokflow) for current order
|
|
407
|
+
* @param {Array<subOrderInfo>} - orders info for new subOrders
|
|
408
|
+
* @param transactionOptions - object what contains action account and web3 instance
|
|
409
|
+
* @returns {Promise<string[]>} - tx hashes
|
|
410
|
+
*/
|
|
411
|
+
Order.prototype.createSubOrders = function (subOrdersInfo, transactionOptions) {
|
|
412
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
413
|
+
var batch, promises, txs;
|
|
414
|
+
var _this = this;
|
|
415
|
+
return __generator(this, function (_a) {
|
|
416
|
+
switch (_a.label) {
|
|
417
|
+
case 0:
|
|
418
|
+
this.checkInitOrder(transactionOptions);
|
|
419
|
+
(0, utils_1.checkIfActionAccountInitialized)(transactionOptions);
|
|
420
|
+
batch = new transactionOptions.web3.BatchRequest();
|
|
421
|
+
promises = subOrdersInfo.map(function (subOrderInfo) {
|
|
422
|
+
return new Promise(function (res, rej) {
|
|
423
|
+
var tupleSubOrder = (0, utils_1.objectToTuple)(subOrderInfo, Order_1.OrderInfoStructure);
|
|
424
|
+
var formattedExternalId = (0, utils_2.formatBytes32String)(subOrderInfo.externalId);
|
|
425
|
+
var params = {
|
|
426
|
+
blockParentOrder: subOrderInfo.blocking,
|
|
427
|
+
externalId: formattedExternalId,
|
|
428
|
+
holdSum: subOrderInfo.holdSum,
|
|
429
|
+
};
|
|
430
|
+
var request = Order.contract.methods.createSubOrder(_this.id, tupleSubOrder, params).send.request({
|
|
431
|
+
from: transactionOptions.from,
|
|
432
|
+
gasPrice: store_1.default.gasPrice,
|
|
433
|
+
gas: store_1.default.gasLimit,
|
|
434
|
+
}, function (err, data) {
|
|
435
|
+
if (data)
|
|
436
|
+
res(data);
|
|
437
|
+
if (err)
|
|
438
|
+
rej(err);
|
|
439
|
+
});
|
|
440
|
+
batch.add(request);
|
|
441
|
+
});
|
|
442
|
+
});
|
|
443
|
+
batch.execute();
|
|
444
|
+
return [4 /*yield*/, Promise.all(promises)];
|
|
445
|
+
case 1:
|
|
446
|
+
txs = _a.sent();
|
|
447
|
+
return [2 /*return*/, txs.reduce(function (a, b) { return a.concat(b); }, [])];
|
|
448
|
+
}
|
|
449
|
+
});
|
|
450
|
+
});
|
|
451
|
+
};
|
|
452
|
+
Order.prototype.getSubOrder = function (consumer, externalId) {
|
|
453
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
454
|
+
var filter, foundIds, notFound, response;
|
|
455
|
+
return __generator(this, function (_a) {
|
|
456
|
+
switch (_a.label) {
|
|
457
|
+
case 0:
|
|
458
|
+
filter = {
|
|
459
|
+
consumer: consumer,
|
|
460
|
+
externalId: (0, utils_2.formatBytes32String)(externalId),
|
|
461
|
+
};
|
|
462
|
+
return [4 /*yield*/, Order.contract.getPastEvents("SubOrderCreated", { filter: filter })];
|
|
463
|
+
case 1:
|
|
464
|
+
foundIds = _a.sent();
|
|
465
|
+
notFound = { consumer: consumer, externalId: externalId, subOfferId: '-1', subOrderId: '-1', parentOrderId: '-1' };
|
|
466
|
+
response = foundIds.length > 0 ? foundIds[0].returnValues : notFound;
|
|
467
|
+
return [2 /*return*/, response];
|
|
468
|
+
}
|
|
469
|
+
});
|
|
470
|
+
});
|
|
471
|
+
};
|
|
472
|
+
/**
|
|
473
|
+
* Function for withdrawing profit from order
|
|
474
|
+
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
475
|
+
*/
|
|
476
|
+
Order.prototype.withdrawProfit = function (transactionOptions) {
|
|
477
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
478
|
+
return __generator(this, function (_a) {
|
|
479
|
+
switch (_a.label) {
|
|
480
|
+
case 0:
|
|
481
|
+
transactionOptions !== null && transactionOptions !== void 0 ? transactionOptions : this.checkInitOrder(transactionOptions);
|
|
482
|
+
(0, utils_1.checkIfActionAccountInitialized)(transactionOptions);
|
|
483
|
+
return [4 /*yield*/, TxManager_1.default.execute(Order.contract.methods.withdrawProfit, [this.id], transactionOptions)];
|
|
484
|
+
case 1:
|
|
485
|
+
_a.sent();
|
|
486
|
+
return [2 /*return*/];
|
|
487
|
+
}
|
|
488
|
+
});
|
|
489
|
+
});
|
|
490
|
+
};
|
|
491
|
+
/**
|
|
492
|
+
* Function for withdrawing change from order
|
|
493
|
+
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
494
|
+
*/
|
|
495
|
+
Order.prototype.withdrawChange = function (transactionOptions) {
|
|
496
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
497
|
+
return __generator(this, function (_a) {
|
|
498
|
+
switch (_a.label) {
|
|
499
|
+
case 0:
|
|
500
|
+
transactionOptions !== null && transactionOptions !== void 0 ? transactionOptions : this.checkInitOrder(transactionOptions);
|
|
501
|
+
(0, utils_1.checkIfActionAccountInitialized)(transactionOptions);
|
|
502
|
+
return [4 /*yield*/, TxManager_1.default.execute(Order.contract.methods.withdrawChange, [this.id], transactionOptions)];
|
|
503
|
+
case 1:
|
|
504
|
+
_a.sent();
|
|
505
|
+
return [2 /*return*/];
|
|
506
|
+
}
|
|
507
|
+
});
|
|
508
|
+
});
|
|
509
|
+
};
|
|
510
|
+
/**
|
|
511
|
+
* Function for adding event listeners to contract events
|
|
512
|
+
* @param callback - function for processing each order related with event
|
|
513
|
+
* @return unsubscribe - function unsubscribing from event
|
|
514
|
+
*/
|
|
515
|
+
Order.prototype.onOrderStatusUpdated = function (callback) {
|
|
516
|
+
var _this = this;
|
|
517
|
+
var logger = this.logger.child({ method: "onOrderStatusUpdated" });
|
|
518
|
+
var subscription = Order.contract.events
|
|
519
|
+
.OrderStatusUpdated()
|
|
520
|
+
.on("data", function (event) { return __awaiter(_this, void 0, void 0, function () {
|
|
521
|
+
return __generator(this, function (_a) {
|
|
522
|
+
if (event.returnValues.orderId != this.id) {
|
|
523
|
+
return [2 /*return*/];
|
|
524
|
+
}
|
|
525
|
+
if (this.orderInfo)
|
|
526
|
+
this.orderInfo.status = event.returnValues.status;
|
|
527
|
+
callback(event.returnValues.status);
|
|
528
|
+
return [2 /*return*/];
|
|
529
|
+
});
|
|
530
|
+
}); })
|
|
531
|
+
.on("error", function (error, receipt) {
|
|
532
|
+
if (receipt)
|
|
533
|
+
return; // Used to avoid logging of transaction rejected
|
|
534
|
+
logger.warn(error);
|
|
535
|
+
});
|
|
536
|
+
return function () { return subscription.unsubscribe(); };
|
|
537
|
+
};
|
|
538
|
+
return Order;
|
|
539
|
+
}());
|
|
540
|
+
exports.default = Order;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { ProviderInfo } from "../types/Provider";
|
|
2
|
+
import { Origins } from "../types/Origins";
|
|
3
|
+
declare class Provider {
|
|
4
|
+
private static contractProviders;
|
|
5
|
+
private static contractProvidersOffers;
|
|
6
|
+
private logger;
|
|
7
|
+
providerInfo?: ProviderInfo;
|
|
8
|
+
violationRate?: number;
|
|
9
|
+
authority?: string;
|
|
10
|
+
valueOffers?: string[];
|
|
11
|
+
teeOffers?: string[];
|
|
12
|
+
origins?: Origins;
|
|
13
|
+
providerId: string;
|
|
14
|
+
constructor(providerId: string);
|
|
15
|
+
/**
|
|
16
|
+
* Function for fetching provider info from blockchain
|
|
17
|
+
*/
|
|
18
|
+
getInfo(): Promise<ProviderInfo>;
|
|
19
|
+
/**
|
|
20
|
+
* Function for fetching provider authority address from blockchain
|
|
21
|
+
*/
|
|
22
|
+
getAuthority(): Promise<string>;
|
|
23
|
+
/**
|
|
24
|
+
* Function for fetching all value offers for this provider
|
|
25
|
+
*/
|
|
26
|
+
getValueOffers(): Promise<string[]>;
|
|
27
|
+
/**
|
|
28
|
+
* Function for fetching all TEE offers for this provider
|
|
29
|
+
*/
|
|
30
|
+
getTeeOffers(): Promise<string[]>;
|
|
31
|
+
/**
|
|
32
|
+
* Function for fetching violationRate for this provider
|
|
33
|
+
*/
|
|
34
|
+
getViolationRate(): Promise<number>;
|
|
35
|
+
/**
|
|
36
|
+
* Fetch new Origins (createdDate, createdBy, modifiedDate and modifiedBy)
|
|
37
|
+
*/
|
|
38
|
+
getOrigins(): Promise<Origins>;
|
|
39
|
+
}
|
|
40
|
+
export default Provider;
|