@super-protocol/sdk-js 0.13.5 → 0.14.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/contracts/app.json +488 -35
- package/build/models/Offer.js +16 -10
- package/build/models/Order.d.ts +1 -1
- package/build/models/Order.js +8 -2
- package/build/models/Provider.d.ts +2 -0
- package/build/models/Provider.js +14 -0
- package/build/models/TeeOffer.js +24 -12
- package/build/staticModels/Consensus.d.ts +3 -0
- package/build/staticModels/Consensus.js +65 -0
- package/build/staticModels/Orders.d.ts +3 -2
- package/build/staticModels/Orders.js +60 -4
- package/build/staticModels/SuperproToken.d.ts +2 -2
- package/build/staticModels/SuperproToken.js +13 -3
- package/build/types/Order.d.ts +6 -0
- package/build/types/Order.js +2 -0
- package/build/types/Web3.d.ts +3 -0
- package/build/utils/TxManager.d.ts +1 -0
- package/build/utils/TxManager.js +41 -12
- package/package.json +1 -1
package/build/models/Offer.js
CHANGED
|
@@ -353,29 +353,35 @@ var Offer = /** @class */ (function () {
|
|
|
353
353
|
if (begin === void 0) { begin = 0; }
|
|
354
354
|
if (end === void 0) { end = 999999; }
|
|
355
355
|
return __awaiter(this, void 0, void 0, function () {
|
|
356
|
-
var slots, _i, slots_1, slot, _a, _b, _c;
|
|
356
|
+
var slotsCount, slots, _i, slots_1, slot, _a, _b, _c;
|
|
357
357
|
return __generator(this, function (_d) {
|
|
358
358
|
switch (_d.label) {
|
|
359
|
-
case 0: return [4 /*yield*/, Offer.contract.methods.
|
|
359
|
+
case 0: return [4 /*yield*/, Offer.contract.methods.getValueOfferSlotsCount(this.id).call()];
|
|
360
360
|
case 1:
|
|
361
|
+
slotsCount = +(_d.sent());
|
|
362
|
+
if (slotsCount === 0) {
|
|
363
|
+
return [2 /*return*/, []];
|
|
364
|
+
}
|
|
365
|
+
return [4 /*yield*/, Offer.contract.methods.getValueOfferSlots(this.id, begin, end).call()];
|
|
366
|
+
case 2:
|
|
361
367
|
slots = _d.sent();
|
|
362
368
|
slots = (0, utils_1.tupleToObjectsArray)(slots, ValueOfferSlot_1.ValueOfferSlotStructure);
|
|
363
369
|
_i = 0, slots_1 = slots;
|
|
364
|
-
_d.label =
|
|
365
|
-
case
|
|
366
|
-
if (!(_i < slots_1.length)) return [3 /*break*/,
|
|
370
|
+
_d.label = 3;
|
|
371
|
+
case 3:
|
|
372
|
+
if (!(_i < slots_1.length)) return [3 /*break*/, 6];
|
|
367
373
|
slot = slots_1[_i];
|
|
368
374
|
_a = slot;
|
|
369
375
|
_b = utils_1.unpackSlotInfo;
|
|
370
376
|
_c = [slot.info];
|
|
371
377
|
return [4 /*yield*/, TeeOffers_1.default.getDenominator()];
|
|
372
|
-
case 3:
|
|
373
|
-
_a.info = _b.apply(void 0, _c.concat([_d.sent()]));
|
|
374
|
-
_d.label = 4;
|
|
375
378
|
case 4:
|
|
379
|
+
_a.info = _b.apply(void 0, _c.concat([_d.sent()]));
|
|
380
|
+
_d.label = 5;
|
|
381
|
+
case 5:
|
|
376
382
|
_i++;
|
|
377
|
-
return [3 /*break*/,
|
|
378
|
-
case
|
|
383
|
+
return [3 /*break*/, 3];
|
|
384
|
+
case 6: return [2 /*return*/, slots];
|
|
379
385
|
}
|
|
380
386
|
});
|
|
381
387
|
});
|
package/build/models/Order.d.ts
CHANGED
|
@@ -134,7 +134,7 @@ declare class Order {
|
|
|
134
134
|
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
135
135
|
* @returns Promise<void> - Does not return id of created sub order!
|
|
136
136
|
*/
|
|
137
|
-
createSubOrder(subOrderInfo: OrderInfo, blockParentOrder: boolean, deposit?: string, transactionOptions?: TransactionOptions): Promise<void>;
|
|
137
|
+
createSubOrder(subOrderInfo: OrderInfo, blockParentOrder: boolean, deposit?: string, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<void>;
|
|
138
138
|
/**
|
|
139
139
|
* Function for creating pack of sub orders (wokflow) for current order
|
|
140
140
|
* @param subOrdersInfo - orders info for new subOrders
|
package/build/models/Order.js
CHANGED
|
@@ -529,8 +529,9 @@ var Order = /** @class */ (function () {
|
|
|
529
529
|
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
530
530
|
* @returns Promise<void> - Does not return id of created sub order!
|
|
531
531
|
*/
|
|
532
|
-
Order.prototype.createSubOrder = function (subOrderInfo, blockParentOrder, deposit, transactionOptions) {
|
|
532
|
+
Order.prototype.createSubOrder = function (subOrderInfo, blockParentOrder, deposit, transactionOptions, checkTxBeforeSend) {
|
|
533
533
|
if (deposit === void 0) { deposit = "0"; }
|
|
534
|
+
if (checkTxBeforeSend === void 0) { checkTxBeforeSend = false; }
|
|
534
535
|
return __awaiter(this, void 0, void 0, function () {
|
|
535
536
|
var preparedInfo, tupleSubOrder, params;
|
|
536
537
|
return __generator(this, function (_a) {
|
|
@@ -544,8 +545,13 @@ var Order = /** @class */ (function () {
|
|
|
544
545
|
blockParentOrder: blockParentOrder,
|
|
545
546
|
deposit: deposit,
|
|
546
547
|
};
|
|
547
|
-
return [
|
|
548
|
+
if (!checkTxBeforeSend) return [3 /*break*/, 2];
|
|
549
|
+
return [4 /*yield*/, TxManager_1.default.dryRun(Order.contract.methods.createSubOrder, [this.id, tupleSubOrder, params], transactionOptions)];
|
|
548
550
|
case 1:
|
|
551
|
+
_a.sent();
|
|
552
|
+
_a.label = 2;
|
|
553
|
+
case 2: return [4 /*yield*/, TxManager_1.default.execute(Order.contract.methods.createSubOrder, [this.id, tupleSubOrder, params], transactionOptions)];
|
|
554
|
+
case 3:
|
|
549
555
|
_a.sent();
|
|
550
556
|
return [2 /*return*/];
|
|
551
557
|
}
|
package/build/models/Provider.js
CHANGED
|
@@ -201,6 +201,20 @@ var Provider = /** @class */ (function () {
|
|
|
201
201
|
});
|
|
202
202
|
});
|
|
203
203
|
};
|
|
204
|
+
Provider.prototype.getOrdersLockedProfitList = function () {
|
|
205
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
206
|
+
return __generator(this, function (_a) {
|
|
207
|
+
return [2 /*return*/, Provider.contractProviders.methods.getOrdersLockedProfitList(this.providerId)];
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
};
|
|
211
|
+
Provider.prototype.getTcbLockedProfitList = function () {
|
|
212
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
213
|
+
return __generator(this, function (_a) {
|
|
214
|
+
return [2 /*return*/, Provider.contractProviders.methods.getTcbLockedProfitList(this.providerId)];
|
|
215
|
+
});
|
|
216
|
+
});
|
|
217
|
+
};
|
|
204
218
|
return Provider;
|
|
205
219
|
}());
|
|
206
220
|
exports.default = Provider;
|
package/build/models/TeeOffer.js
CHANGED
|
@@ -187,11 +187,17 @@ var TeeOffer = /** @class */ (function () {
|
|
|
187
187
|
if (begin === void 0) { begin = 0; }
|
|
188
188
|
if (end === void 0) { end = 999999; }
|
|
189
189
|
return __awaiter(this, void 0, void 0, function () {
|
|
190
|
-
var teeOfferOption;
|
|
190
|
+
var optionsCount, teeOfferOption;
|
|
191
191
|
return __generator(this, function (_a) {
|
|
192
192
|
switch (_a.label) {
|
|
193
|
-
case 0: return [4 /*yield*/, TeeOffer.contract.methods.
|
|
193
|
+
case 0: return [4 /*yield*/, TeeOffer.contract.methods.getTeeOfferOptionsCount(this.id).call()];
|
|
194
194
|
case 1:
|
|
195
|
+
optionsCount = +(_a.sent());
|
|
196
|
+
if (optionsCount === 0) {
|
|
197
|
+
return [2 /*return*/, []];
|
|
198
|
+
}
|
|
199
|
+
return [4 /*yield*/, TeeOffer.contract.methods.getTeeOfferOptions(this.id, begin, end).call()];
|
|
200
|
+
case 2:
|
|
195
201
|
teeOfferOption = _a.sent();
|
|
196
202
|
return [2 /*return*/, (0, utils_1.tupleToObjectsArray)(teeOfferOption, TeeOfferOption_1.TeeOfferOptionStructure)];
|
|
197
203
|
}
|
|
@@ -350,29 +356,35 @@ var TeeOffer = /** @class */ (function () {
|
|
|
350
356
|
if (begin === void 0) { begin = 0; }
|
|
351
357
|
if (end === void 0) { end = 999999; }
|
|
352
358
|
return __awaiter(this, void 0, void 0, function () {
|
|
353
|
-
var slots, _i, slots_1, slot, _a, _b, _c;
|
|
359
|
+
var teeOfferSlotsCount, slots, _i, slots_1, slot, _a, _b, _c;
|
|
354
360
|
return __generator(this, function (_d) {
|
|
355
361
|
switch (_d.label) {
|
|
356
|
-
case 0: return [4 /*yield*/, TeeOffer.contract.methods.
|
|
362
|
+
case 0: return [4 /*yield*/, TeeOffer.contract.methods.getTeeOfferSlotsCount(this.id).call()];
|
|
357
363
|
case 1:
|
|
364
|
+
teeOfferSlotsCount = +(_d.sent());
|
|
365
|
+
if (teeOfferSlotsCount === 0) {
|
|
366
|
+
return [2 /*return*/, []];
|
|
367
|
+
}
|
|
368
|
+
return [4 /*yield*/, TeeOffer.contract.methods.getTeeOfferSlots(this.id, begin, end).call()];
|
|
369
|
+
case 2:
|
|
358
370
|
slots = _d.sent();
|
|
359
371
|
slots = (0, utils_1.tupleToObjectsArray)(slots, TeeOfferSlot_1.TeeOfferSlotStructure);
|
|
360
372
|
_i = 0, slots_1 = slots;
|
|
361
|
-
_d.label =
|
|
362
|
-
case
|
|
363
|
-
if (!(_i < slots_1.length)) return [3 /*break*/,
|
|
373
|
+
_d.label = 3;
|
|
374
|
+
case 3:
|
|
375
|
+
if (!(_i < slots_1.length)) return [3 /*break*/, 6];
|
|
364
376
|
slot = slots_1[_i];
|
|
365
377
|
_a = slot;
|
|
366
378
|
_b = utils_1.unpackSlotInfo;
|
|
367
379
|
_c = [slot.info];
|
|
368
380
|
return [4 /*yield*/, TeeOffers_1.default.getDenominator()];
|
|
369
|
-
case 3:
|
|
370
|
-
_a.info = _b.apply(void 0, _c.concat([_d.sent()]));
|
|
371
|
-
_d.label = 4;
|
|
372
381
|
case 4:
|
|
382
|
+
_a.info = _b.apply(void 0, _c.concat([_d.sent()]));
|
|
383
|
+
_d.label = 5;
|
|
384
|
+
case 5:
|
|
373
385
|
_i++;
|
|
374
|
-
return [3 /*break*/,
|
|
375
|
-
case
|
|
386
|
+
return [3 /*break*/, 3];
|
|
387
|
+
case 6: return [2 /*return*/, slots];
|
|
376
388
|
}
|
|
377
389
|
});
|
|
378
390
|
});
|
|
@@ -13,6 +13,7 @@ declare class Consensus {
|
|
|
13
13
|
*/
|
|
14
14
|
static getAllTcbs(): Promise<string[]>;
|
|
15
15
|
static initializeTcb(teeOfferId: string, transactionOptions?: TransactionOptions): Promise<void>;
|
|
16
|
+
static unlockProfitByTcbList(tcbIds: string[], transactionOptions?: TransactionOptions): Promise<void>;
|
|
16
17
|
static isTcbCreationAvailable(teeOfferId: string): Promise<boolean>;
|
|
17
18
|
/**
|
|
18
19
|
* Function initialize TCB and returns list of anothers' TCB for their checking
|
|
@@ -43,9 +44,11 @@ declare class Consensus {
|
|
|
43
44
|
static onTcbInitialized(callback: onTcbInitializedCallback): () => void;
|
|
44
45
|
static onTcbBenchmarkChanged(callback: onTcbBenchmarkChangedCallback): () => void;
|
|
45
46
|
static onRewardsClaimed(callback: onRewardsClaimedCallback): () => void;
|
|
47
|
+
static onTcbRewardUnlocked(callback: onTcbRewardUnlockedCallback): () => void;
|
|
46
48
|
}
|
|
47
49
|
export type onRewardsClaimedCallback = (tcbId: string, amount: string, claimer: string, block?: BlockInfo) => void;
|
|
48
50
|
export type onTcbBenchmarkChangedCallback = (tcbId: string, provider: string, block?: BlockInfo) => void;
|
|
51
|
+
export type onTcbRewardUnlockedCallback = (tcbId: string, rewards: string, block?: BlockInfo) => void;
|
|
49
52
|
export type onTcbInitializedCallback = (tcbId: string, provider: string, block?: BlockInfo) => void;
|
|
50
53
|
export type onTcbCompletedCallback = (tcbId: string, provider: string, block?: BlockInfo) => void;
|
|
51
54
|
export type onTcbBannedCallback = (tcbId: string, provider: string, block?: BlockInfo) => void;
|
|
@@ -121,6 +121,49 @@ var Consensus = /** @class */ (function () {
|
|
|
121
121
|
});
|
|
122
122
|
});
|
|
123
123
|
};
|
|
124
|
+
Consensus.unlockProfitByTcbList = function (tcbIds, transactionOptions) {
|
|
125
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
126
|
+
var contract, executedCount, e_1, _i, tcbIds_1, tcbId;
|
|
127
|
+
return __generator(this, function (_a) {
|
|
128
|
+
switch (_a.label) {
|
|
129
|
+
case 0:
|
|
130
|
+
contract = BlockchainConnector_1.default.getInstance().getContract(transactionOptions);
|
|
131
|
+
(0, utils_1.checkIfActionAccountInitialized)(transactionOptions);
|
|
132
|
+
_a.label = 1;
|
|
133
|
+
case 1:
|
|
134
|
+
_a.trys.push([1, 3, , 4]);
|
|
135
|
+
return [4 /*yield*/, TxManager_1.default.dryRun(contract.methods.unlockTcbRewardByList, [tcbIds], transactionOptions)];
|
|
136
|
+
case 2:
|
|
137
|
+
executedCount = +(_a.sent());
|
|
138
|
+
return [3 /*break*/, 4];
|
|
139
|
+
case 3:
|
|
140
|
+
e_1 = _a.sent();
|
|
141
|
+
executedCount = 0;
|
|
142
|
+
return [3 /*break*/, 4];
|
|
143
|
+
case 4:
|
|
144
|
+
if (!(executedCount === tcbIds.length)) return [3 /*break*/, 6];
|
|
145
|
+
return [4 /*yield*/, TxManager_1.default.execute(contract.methods.unlockTcbRewardByList, [tcbIds], transactionOptions)];
|
|
146
|
+
case 5:
|
|
147
|
+
_a.sent();
|
|
148
|
+
return [3 /*break*/, 10];
|
|
149
|
+
case 6:
|
|
150
|
+
_i = 0, tcbIds_1 = tcbIds;
|
|
151
|
+
_a.label = 7;
|
|
152
|
+
case 7:
|
|
153
|
+
if (!(_i < tcbIds_1.length)) return [3 /*break*/, 10];
|
|
154
|
+
tcbId = tcbIds_1[_i];
|
|
155
|
+
return [4 /*yield*/, new TCB_1.default(tcbId).unlockRewards()];
|
|
156
|
+
case 8:
|
|
157
|
+
_a.sent();
|
|
158
|
+
_a.label = 9;
|
|
159
|
+
case 9:
|
|
160
|
+
_i++;
|
|
161
|
+
return [3 /*break*/, 7];
|
|
162
|
+
case 10: return [2 /*return*/];
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
};
|
|
124
167
|
Consensus.isTcbCreationAvailable = function (teeOfferId) {
|
|
125
168
|
return __awaiter(this, void 0, void 0, function () {
|
|
126
169
|
var contract, _a, offerNotBlocked, newEpochStarted, halfEpochPassed, benchmarkVerified;
|
|
@@ -402,6 +445,28 @@ var Consensus = /** @class */ (function () {
|
|
|
402
445
|
});
|
|
403
446
|
return function () { return subscription.unsubscribe(); };
|
|
404
447
|
};
|
|
448
|
+
Consensus.onTcbRewardUnlocked = function (callback) {
|
|
449
|
+
var _this = this;
|
|
450
|
+
var contract = BlockchainEventsListener_1.default.getInstance().getContract();
|
|
451
|
+
var logger = this.logger.child({ method: "onTcbRewardUnlocked" });
|
|
452
|
+
var subscription = contract.events
|
|
453
|
+
.TcbRewardUnlocked()
|
|
454
|
+
.on("data", function (event) { return __awaiter(_this, void 0, void 0, function () {
|
|
455
|
+
return __generator(this, function (_a) {
|
|
456
|
+
callback(event.returnValues.tcbId, event.returnValues.rewards, {
|
|
457
|
+
index: event.blockNumber,
|
|
458
|
+
hash: event.blockHash,
|
|
459
|
+
});
|
|
460
|
+
return [2 /*return*/];
|
|
461
|
+
});
|
|
462
|
+
}); })
|
|
463
|
+
.on("error", function (error, receipt) {
|
|
464
|
+
if (receipt)
|
|
465
|
+
return; // Used to avoid logging of transaction rejected
|
|
466
|
+
logger.warn(error);
|
|
467
|
+
});
|
|
468
|
+
return function () { return subscription.unsubscribe(); };
|
|
469
|
+
};
|
|
405
470
|
Consensus.logger = logger_1.default.child({ className: "Consensus" });
|
|
406
471
|
return Consensus;
|
|
407
472
|
}());
|
|
@@ -21,7 +21,7 @@ declare class Orders {
|
|
|
21
21
|
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
22
22
|
* @returns {Promise<void>} - Does not return id of created order!
|
|
23
23
|
*/
|
|
24
|
-
static createOrder(orderInfo: OrderInfo, deposit?: string, suspended?: boolean, transactionOptions?: TransactionOptions): Promise<void>;
|
|
24
|
+
static createOrder(orderInfo: OrderInfo, deposit?: string, suspended?: boolean, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<void>;
|
|
25
25
|
static getByExternalId(consumer?: string, externalId?: string, fromBlock?: number | string, toBlock?: number | string): Promise<OrderCreatedEvent>;
|
|
26
26
|
/**
|
|
27
27
|
* Function for create workflow
|
|
@@ -31,7 +31,7 @@ declare class Orders {
|
|
|
31
31
|
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
32
32
|
* @returns {Promise<void>} - Does not return id of created order!
|
|
33
33
|
*/
|
|
34
|
-
static createWorkflow(parentOrderInfo: OrderInfo, subOrdersInfo: OrderInfo[], workflowDeposit?: string, transactionOptions?: TransactionOptions): Promise<void>;
|
|
34
|
+
static createWorkflow(parentOrderInfo: OrderInfo, subOrdersInfo: OrderInfo[], workflowDeposit?: string, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<void>;
|
|
35
35
|
/**
|
|
36
36
|
* Function for cancel workflow
|
|
37
37
|
* @param parentOrderId - Parent order id
|
|
@@ -51,6 +51,7 @@ declare class Orders {
|
|
|
51
51
|
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
52
52
|
*/
|
|
53
53
|
static refillOrderDeposit(orderId: string, amount: string, transactionOptions?: TransactionOptions): Promise<void>;
|
|
54
|
+
static unlockProfitByOrderList(orderIds: string[], transactionOptions?: TransactionOptions): Promise<void>;
|
|
54
55
|
/**
|
|
55
56
|
* Function for adding event listeners on order created event in orders factory contract
|
|
56
57
|
* @param callback - function for processing created order
|
|
@@ -64,6 +64,7 @@ var Superpro_1 = __importDefault(require("./Superpro"));
|
|
|
64
64
|
var TxManager_1 = __importDefault(require("../utils/TxManager"));
|
|
65
65
|
var BlockchainConnector_1 = __importDefault(require("../connectors/BlockchainConnector"));
|
|
66
66
|
var BlockchainEventsListener_1 = __importDefault(require("../connectors/BlockchainEventsListener"));
|
|
67
|
+
var Order_2 = __importDefault(require("../models/Order"));
|
|
67
68
|
var Orders = /** @class */ (function () {
|
|
68
69
|
function Orders() {
|
|
69
70
|
}
|
|
@@ -124,9 +125,10 @@ var Orders = /** @class */ (function () {
|
|
|
124
125
|
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
125
126
|
* @returns {Promise<void>} - Does not return id of created order!
|
|
126
127
|
*/
|
|
127
|
-
Orders.createOrder = function (orderInfo, deposit, suspended, transactionOptions) {
|
|
128
|
+
Orders.createOrder = function (orderInfo, deposit, suspended, transactionOptions, checkTxBeforeSend) {
|
|
128
129
|
if (deposit === void 0) { deposit = "0"; }
|
|
129
130
|
if (suspended === void 0) { suspended = false; }
|
|
131
|
+
if (checkTxBeforeSend === void 0) { checkTxBeforeSend = false; }
|
|
130
132
|
return __awaiter(this, void 0, void 0, function () {
|
|
131
133
|
var contract, preparedInfo, orderInfoArguments;
|
|
132
134
|
return __generator(this, function (_a) {
|
|
@@ -136,8 +138,13 @@ var Orders = /** @class */ (function () {
|
|
|
136
138
|
(0, utils_2.checkIfActionAccountInitialized)(transactionOptions);
|
|
137
139
|
preparedInfo = __assign(__assign({}, orderInfo), { externalId: (0, utils_1.formatBytes32String)(orderInfo.externalId) });
|
|
138
140
|
orderInfoArguments = (0, utils_2.objectToTuple)(preparedInfo, Order_1.OrderInfoStructure);
|
|
139
|
-
return [
|
|
141
|
+
if (!checkTxBeforeSend) return [3 /*break*/, 2];
|
|
142
|
+
return [4 /*yield*/, TxManager_1.default.dryRun(contract.methods.createOrder, [orderInfoArguments, deposit, suspended], transactionOptions)];
|
|
140
143
|
case 1:
|
|
144
|
+
_a.sent();
|
|
145
|
+
_a.label = 2;
|
|
146
|
+
case 2: return [4 /*yield*/, TxManager_1.default.execute(contract.methods.createOrder, [orderInfoArguments, deposit, suspended], transactionOptions)];
|
|
147
|
+
case 3:
|
|
141
148
|
_a.sent();
|
|
142
149
|
return [2 /*return*/];
|
|
143
150
|
}
|
|
@@ -181,8 +188,9 @@ var Orders = /** @class */ (function () {
|
|
|
181
188
|
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
182
189
|
* @returns {Promise<void>} - Does not return id of created order!
|
|
183
190
|
*/
|
|
184
|
-
Orders.createWorkflow = function (parentOrderInfo, subOrdersInfo, workflowDeposit, transactionOptions) {
|
|
191
|
+
Orders.createWorkflow = function (parentOrderInfo, subOrdersInfo, workflowDeposit, transactionOptions, checkTxBeforeSend) {
|
|
185
192
|
if (workflowDeposit === void 0) { workflowDeposit = "0"; }
|
|
193
|
+
if (checkTxBeforeSend === void 0) { checkTxBeforeSend = false; }
|
|
186
194
|
return __awaiter(this, void 0, void 0, function () {
|
|
187
195
|
var contract, preparedInfo, parentOrderInfoArgs, preparedSubOrdersInfo, subOrdersInfoArgs;
|
|
188
196
|
return __generator(this, function (_a) {
|
|
@@ -194,8 +202,13 @@ var Orders = /** @class */ (function () {
|
|
|
194
202
|
parentOrderInfoArgs = (0, utils_2.objectToTuple)(preparedInfo, Order_1.OrderInfoStructure);
|
|
195
203
|
preparedSubOrdersInfo = subOrdersInfo.map(function (o) { return (__assign(__assign({}, o), { externalId: (0, utils_1.formatBytes32String)(o.externalId) })); });
|
|
196
204
|
subOrdersInfoArgs = (0, utils_2.objectToTuple)(preparedSubOrdersInfo, Order_1.OrderInfoStructureArray);
|
|
197
|
-
return [
|
|
205
|
+
if (!checkTxBeforeSend) return [3 /*break*/, 2];
|
|
206
|
+
return [4 /*yield*/, TxManager_1.default.dryRun(contract.methods.createWorkflow, [parentOrderInfoArgs, workflowDeposit, subOrdersInfoArgs], transactionOptions)];
|
|
198
207
|
case 1:
|
|
208
|
+
_a.sent();
|
|
209
|
+
_a.label = 2;
|
|
210
|
+
case 2: return [4 /*yield*/, TxManager_1.default.execute(contract.methods.createWorkflow, [parentOrderInfoArgs, workflowDeposit, subOrdersInfoArgs], transactionOptions)];
|
|
211
|
+
case 3:
|
|
199
212
|
_a.sent();
|
|
200
213
|
return [2 /*return*/];
|
|
201
214
|
}
|
|
@@ -266,6 +279,49 @@ var Orders = /** @class */ (function () {
|
|
|
266
279
|
});
|
|
267
280
|
});
|
|
268
281
|
};
|
|
282
|
+
Orders.unlockProfitByOrderList = function (orderIds, transactionOptions) {
|
|
283
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
284
|
+
var contract, executedCount, e_1, _i, orderIds_1, orderId;
|
|
285
|
+
return __generator(this, function (_a) {
|
|
286
|
+
switch (_a.label) {
|
|
287
|
+
case 0:
|
|
288
|
+
contract = BlockchainConnector_1.default.getInstance().getContract(transactionOptions);
|
|
289
|
+
(0, utils_2.checkIfActionAccountInitialized)(transactionOptions);
|
|
290
|
+
_a.label = 1;
|
|
291
|
+
case 1:
|
|
292
|
+
_a.trys.push([1, 3, , 4]);
|
|
293
|
+
return [4 /*yield*/, TxManager_1.default.dryRun(contract.methods.unlockProfitByList, [orderIds], transactionOptions)];
|
|
294
|
+
case 2:
|
|
295
|
+
executedCount = +(_a.sent());
|
|
296
|
+
return [3 /*break*/, 4];
|
|
297
|
+
case 3:
|
|
298
|
+
e_1 = _a.sent();
|
|
299
|
+
executedCount = 0;
|
|
300
|
+
return [3 /*break*/, 4];
|
|
301
|
+
case 4:
|
|
302
|
+
if (!(executedCount === orderIds.length)) return [3 /*break*/, 6];
|
|
303
|
+
return [4 /*yield*/, TxManager_1.default.execute(contract.methods.unlockProfitByList, [orderIds], transactionOptions)];
|
|
304
|
+
case 5:
|
|
305
|
+
_a.sent();
|
|
306
|
+
return [3 /*break*/, 10];
|
|
307
|
+
case 6:
|
|
308
|
+
_i = 0, orderIds_1 = orderIds;
|
|
309
|
+
_a.label = 7;
|
|
310
|
+
case 7:
|
|
311
|
+
if (!(_i < orderIds_1.length)) return [3 /*break*/, 10];
|
|
312
|
+
orderId = orderIds_1[_i];
|
|
313
|
+
return [4 /*yield*/, new Order_2.default(orderId).unlockProfit()];
|
|
314
|
+
case 8:
|
|
315
|
+
_a.sent();
|
|
316
|
+
_a.label = 9;
|
|
317
|
+
case 9:
|
|
318
|
+
_i++;
|
|
319
|
+
return [3 /*break*/, 7];
|
|
320
|
+
case 10: return [2 /*return*/];
|
|
321
|
+
}
|
|
322
|
+
});
|
|
323
|
+
});
|
|
324
|
+
};
|
|
269
325
|
/**
|
|
270
326
|
* Function for adding event listeners on order created event in orders factory contract
|
|
271
327
|
* @param callback - function for processing created order
|
|
@@ -32,14 +32,14 @@ declare class SuperproToken {
|
|
|
32
32
|
* @param amount - amount of tokens to transfer
|
|
33
33
|
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
34
34
|
*/
|
|
35
|
-
static transfer(to: string, amount: string, transactionOptions?: TransactionOptions): Promise<Transaction>;
|
|
35
|
+
static transfer(to: string, amount: string, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<Transaction>;
|
|
36
36
|
/**
|
|
37
37
|
* Approve tokens for specific address
|
|
38
38
|
* @param address - address for approval
|
|
39
39
|
* @param amount - number of tokens to be approved
|
|
40
40
|
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
41
41
|
*/
|
|
42
|
-
static approve(address: string, amount: string, transactionOptions?: TransactionOptions): Promise<void>;
|
|
42
|
+
static approve(address: string, amount: string, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<void>;
|
|
43
43
|
static onTokenApprove(callback: onTokenApproveCallback, owner?: string, spender?: string): () => void;
|
|
44
44
|
static onTokenTransfer(callback: onTokenTransferCallback, from?: string, to?: string): () => void;
|
|
45
45
|
}
|
|
@@ -120,7 +120,8 @@ var SuperproToken = /** @class */ (function () {
|
|
|
120
120
|
* @param amount - amount of tokens to transfer
|
|
121
121
|
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
122
122
|
*/
|
|
123
|
-
SuperproToken.transfer = function (to, amount, transactionOptions) {
|
|
123
|
+
SuperproToken.transfer = function (to, amount, transactionOptions, checkTxBeforeSend) {
|
|
124
|
+
if (checkTxBeforeSend === void 0) { checkTxBeforeSend = false; }
|
|
124
125
|
return __awaiter(this, void 0, void 0, function () {
|
|
125
126
|
var contract, receipt;
|
|
126
127
|
return __generator(this, function (_a) {
|
|
@@ -128,6 +129,9 @@ var SuperproToken = /** @class */ (function () {
|
|
|
128
129
|
case 0:
|
|
129
130
|
contract = this.checkInit(transactionOptions);
|
|
130
131
|
(0, utils_1.checkIfActionAccountInitialized)(transactionOptions);
|
|
132
|
+
if (checkTxBeforeSend) {
|
|
133
|
+
TxManager_1.default.dryRun(contract.methods.transfer, [to, amount], transactionOptions);
|
|
134
|
+
}
|
|
131
135
|
return [4 /*yield*/, TxManager_1.default.execute(contract.methods.transfer, [to, amount], transactionOptions, SuperproToken.addressHttps)];
|
|
132
136
|
case 1:
|
|
133
137
|
receipt = _a.sent();
|
|
@@ -142,7 +146,8 @@ var SuperproToken = /** @class */ (function () {
|
|
|
142
146
|
* @param amount - number of tokens to be approved
|
|
143
147
|
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
144
148
|
*/
|
|
145
|
-
SuperproToken.approve = function (address, amount, transactionOptions) {
|
|
149
|
+
SuperproToken.approve = function (address, amount, transactionOptions, checkTxBeforeSend) {
|
|
150
|
+
if (checkTxBeforeSend === void 0) { checkTxBeforeSend = false; }
|
|
146
151
|
return __awaiter(this, void 0, void 0, function () {
|
|
147
152
|
var contract;
|
|
148
153
|
return __generator(this, function (_a) {
|
|
@@ -150,8 +155,13 @@ var SuperproToken = /** @class */ (function () {
|
|
|
150
155
|
case 0:
|
|
151
156
|
contract = this.checkInit(transactionOptions);
|
|
152
157
|
(0, utils_1.checkIfActionAccountInitialized)(transactionOptions);
|
|
153
|
-
return [
|
|
158
|
+
if (!checkTxBeforeSend) return [3 /*break*/, 2];
|
|
159
|
+
return [4 /*yield*/, TxManager_1.default.dryRun(contract.methods.approve, [address, amount], transactionOptions)];
|
|
154
160
|
case 1:
|
|
161
|
+
_a.sent();
|
|
162
|
+
_a.label = 2;
|
|
163
|
+
case 2: return [4 /*yield*/, TxManager_1.default.execute(contract.methods.approve, [address, amount], transactionOptions, SuperproToken.addressHttps)];
|
|
164
|
+
case 3:
|
|
155
165
|
_a.sent();
|
|
156
166
|
return [2 /*return*/];
|
|
157
167
|
}
|
package/build/types/Order.d.ts
CHANGED
|
@@ -43,6 +43,8 @@ export declare const OrderInfoStructure: {
|
|
|
43
43
|
optionsCount: StringConstructor[];
|
|
44
44
|
};
|
|
45
45
|
externalId: typeof parseBytes32String;
|
|
46
|
+
expectedPrice: StringConstructor;
|
|
47
|
+
maxPriceSlippage: StringConstructor;
|
|
46
48
|
};
|
|
47
49
|
export declare const OrderInfoStructureArray: {
|
|
48
50
|
offerId: StringConstructor;
|
|
@@ -61,6 +63,8 @@ export declare const OrderInfoStructureArray: {
|
|
|
61
63
|
optionsCount: StringConstructor[];
|
|
62
64
|
};
|
|
63
65
|
externalId: typeof parseBytes32String;
|
|
66
|
+
expectedPrice: StringConstructor;
|
|
67
|
+
maxPriceSlippage: StringConstructor;
|
|
64
68
|
}[];
|
|
65
69
|
export type OrderSlots = {
|
|
66
70
|
slotId: string;
|
|
@@ -77,6 +81,8 @@ export type OrderInfo = {
|
|
|
77
81
|
args: OrderArgs;
|
|
78
82
|
slots: OrderSlots;
|
|
79
83
|
externalId: string;
|
|
84
|
+
expectedPrice: string;
|
|
85
|
+
maxPriceSlippage: string;
|
|
80
86
|
};
|
|
81
87
|
export type ExtendedOrderInfo = OrderInfo & {
|
|
82
88
|
blocking: boolean;
|
package/build/types/Order.js
CHANGED
|
@@ -37,6 +37,8 @@ exports.OrderInfoStructure = {
|
|
|
37
37
|
args: exports.OrderArgsStructure,
|
|
38
38
|
slots: exports.OrderSlotsStructure,
|
|
39
39
|
externalId: utils_1.parseBytes32String,
|
|
40
|
+
expectedPrice: String,
|
|
41
|
+
maxPriceSlippage: String,
|
|
40
42
|
};
|
|
41
43
|
// Array of order info structures
|
|
42
44
|
exports.OrderInfoStructureArray = [exports.OrderInfoStructure];
|
package/build/types/Web3.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ declare class TxManager {
|
|
|
16
16
|
private static checkIfInitialized;
|
|
17
17
|
static initAccount(address: string): Promise<void>;
|
|
18
18
|
static execute(method: (...args: ArgumentsType) => MethodReturnType, args: ArgumentsType, transactionOptions?: TransactionOptions, to?: string): Promise<TransactionReceipt>;
|
|
19
|
+
static dryRun(method: (...args: ArgumentsType) => MethodReturnType, args: ArgumentsType, transactionOptions?: TransactionOptions): Promise<any>;
|
|
19
20
|
static publishTransaction(txData: Record<string, any>, transactionOptions?: TransactionOptions, transactionCall?: MethodReturnType): Promise<TransactionReceipt>;
|
|
20
21
|
}
|
|
21
22
|
export default TxManager;
|
package/build/utils/TxManager.js
CHANGED
|
@@ -89,18 +89,47 @@ var TxManager = /** @class */ (function () {
|
|
|
89
89
|
return __awaiter(this, void 0, void 0, function () {
|
|
90
90
|
var transaction, txData;
|
|
91
91
|
return __generator(this, function (_a) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
92
|
+
switch (_a.label) {
|
|
93
|
+
case 0:
|
|
94
|
+
transaction = method.apply(void 0, args);
|
|
95
|
+
txData = {
|
|
96
|
+
to: to,
|
|
97
|
+
data: transaction.encodeABI(),
|
|
98
|
+
};
|
|
99
|
+
return [4 /*yield*/, TxManager.publishTransaction(txData, transactionOptions, transaction)];
|
|
100
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
TxManager.dryRun = function (method, args, transactionOptions) {
|
|
106
|
+
var _a;
|
|
107
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
108
|
+
var transaction, from, result, e_1;
|
|
109
|
+
return __generator(this, function (_b) {
|
|
110
|
+
switch (_b.label) {
|
|
111
|
+
case 0:
|
|
112
|
+
transaction = method.apply(void 0, args);
|
|
113
|
+
from = (_a = transactionOptions === null || transactionOptions === void 0 ? void 0 : transactionOptions.from) !== null && _a !== void 0 ? _a : store_1.default.actionAccount;
|
|
114
|
+
_b.label = 1;
|
|
115
|
+
case 1:
|
|
116
|
+
_b.trys.push([1, 3, , 4]);
|
|
117
|
+
return [4 /*yield*/, transaction.call({ from: from })];
|
|
118
|
+
case 2:
|
|
119
|
+
result = _b.sent();
|
|
120
|
+
return [2 /*return*/, result];
|
|
121
|
+
case 3:
|
|
122
|
+
e_1 = _b.sent();
|
|
123
|
+
e_1.txErrorMsg = e_1.data.message || "Error text is undefined";
|
|
124
|
+
throw e_1;
|
|
125
|
+
case 4: return [2 /*return*/];
|
|
126
|
+
}
|
|
98
127
|
});
|
|
99
128
|
});
|
|
100
129
|
};
|
|
101
130
|
TxManager.publishTransaction = function (txData, transactionOptions, transactionCall) {
|
|
102
131
|
return __awaiter(this, void 0, void 0, function () {
|
|
103
|
-
var web3, options, estimatedGas,
|
|
132
|
+
var web3, options, estimatedGas, e_2, nonceTracker, signingKey, transactionResultData, signed, e_3;
|
|
104
133
|
return __generator(this, function (_a) {
|
|
105
134
|
switch (_a.label) {
|
|
106
135
|
case 0:
|
|
@@ -124,8 +153,8 @@ var TxManager = /** @class */ (function () {
|
|
|
124
153
|
estimatedGas = _a.sent();
|
|
125
154
|
return [3 /*break*/, 5];
|
|
126
155
|
case 4:
|
|
127
|
-
|
|
128
|
-
TxManager.logger.debug({ error:
|
|
156
|
+
e_2 = _a.sent();
|
|
157
|
+
TxManager.logger.debug({ error: e_2 }, "Fail to calculate estimated gas");
|
|
129
158
|
estimatedGas = constants_1.defaultGasLimit;
|
|
130
159
|
return [3 /*break*/, 5];
|
|
131
160
|
case 5:
|
|
@@ -191,14 +220,14 @@ var TxManager = /** @class */ (function () {
|
|
|
191
220
|
nonceTracker.onTransactionPublished();
|
|
192
221
|
return [2 /*return*/, transactionResultData];
|
|
193
222
|
case 15:
|
|
194
|
-
|
|
195
|
-
TxManager.logger.error(
|
|
223
|
+
e_3 = _a.sent();
|
|
224
|
+
TxManager.logger.error(e_3, "Error during transaction execution");
|
|
196
225
|
if (!nonceTracker) return [3 /*break*/, 17];
|
|
197
226
|
return [4 /*yield*/, nonceTracker.onTransactionError()];
|
|
198
227
|
case 16:
|
|
199
228
|
_a.sent();
|
|
200
229
|
_a.label = 17;
|
|
201
|
-
case 17: throw
|
|
230
|
+
case 17: throw e_3;
|
|
202
231
|
case 18: return [2 /*return*/];
|
|
203
232
|
}
|
|
204
233
|
});
|