@typus/typus-sdk 0.1.8 → 0.2.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/lib/constants.d.ts +10 -7
- package/lib/constants.js +12 -10
- package/lib/scripts/coveredCall/getClaimAllTx.d.ts +1 -0
- package/lib/scripts/coveredCall/getClaimAllTx.js +56 -0
- package/lib/scripts/coveredCall/getClaimTx.d.ts +1 -0
- package/lib/scripts/coveredCall/getClaimTx.js +57 -0
- package/lib/scripts/coveredCall/getDeliveryTx.js +4 -2
- package/lib/scripts/coveredCall/getNewAuctionWithNextCoveredCallVaultTx.js +2 -4
- package/lib/scripts/coveredCall/getNewCoveredCallVaultTx.js +2 -5
- package/lib/scripts/coveredCall/getNewManagerTx.d.ts +1 -0
- package/lib/scripts/coveredCall/getNewManagerTx.js +55 -0
- package/lib/scripts/coveredCall/getRemoveManagerTx.d.ts +1 -0
- package/lib/scripts/coveredCall/getRemoveManagerTx.js +54 -0
- package/lib/scripts/coveredCall/getRollOverTx.d.ts +1 -0
- package/lib/scripts/coveredCall/getRollOverTx.js +55 -0
- package/lib/scripts/coveredCall/getSettleTx.d.ts +1 -0
- package/lib/scripts/coveredCall/getSettleTx.js +57 -0
- package/lib/scripts/coveredCall/getSettleWithRollOverTx.d.ts +1 -0
- package/lib/scripts/coveredCall/getSettleWithRollOverTx.js +57 -0
- package/lib/scripts/coveredCall/getUpdatePayoffConfigTx.d.ts +1 -0
- package/lib/scripts/coveredCall/getUpdatePayoffConfigTx.js +57 -0
- package/lib/scripts/getMintTx.js +1 -1
- package/lib/scripts/getNewOracleTx.js +1 -1
- package/lib/scripts/getNewTimeOracleTx.d.ts +1 -0
- package/lib/scripts/getNewTimeOracleTx.js +54 -0
- package/lib/scripts/getSubVault.d.ts +0 -1
- package/lib/scripts/getSubVault.js +5 -51
- package/lib/scripts/getUpdateTimeOracleTx.d.ts +1 -0
- package/lib/scripts/getUpdateTimeOracleTx.js +59 -0
- package/lib/test/testMint.js +11 -9
- package/lib/test/testNewVault.js +7 -9
- package/lib/test/testOracle.js +8 -4
- package/lib/test/testSettle.d.ts +1 -0
- package/lib/test/testSettle.js +555 -0
- package/lib/utils/coveredCall/getClaimAllTx.d.ts +1 -0
- package/lib/utils/coveredCall/getClaimAllTx.js +60 -0
- package/lib/utils/coveredCall/getClaimTx.d.ts +1 -0
- package/lib/utils/coveredCall/getClaimTx.js +61 -0
- package/lib/utils/coveredCall/getDeliveryTx.d.ts +1 -1
- package/lib/utils/coveredCall/getDeliveryTx.js +3 -1
- package/lib/utils/coveredCall/getNewAuctionWithNextCoveredCallVaultTx.d.ts +1 -1
- package/lib/utils/coveredCall/getNewAuctionWithNextCoveredCallVaultTx.js +1 -3
- package/lib/utils/coveredCall/getNewCoveredCallVaultTx.d.ts +1 -1
- package/lib/utils/coveredCall/getNewCoveredCallVaultTx.js +1 -3
- package/lib/utils/coveredCall/getNewManagerTx.d.ts +1 -0
- package/lib/utils/coveredCall/getNewManagerTx.js +59 -0
- package/lib/utils/coveredCall/getRemoveManagerTx.d.ts +1 -0
- package/lib/utils/coveredCall/getRemoveManagerTx.js +58 -0
- package/lib/utils/coveredCall/getRollOverTx.d.ts +1 -0
- package/lib/utils/coveredCall/getRollOverTx.js +60 -0
- package/lib/utils/coveredCall/getSettleTx.d.ts +1 -0
- package/lib/utils/coveredCall/getSettleTx.js +62 -0
- package/lib/utils/coveredCall/getSettleWithRollOverTx.d.ts +1 -0
- package/lib/utils/coveredCall/getSettleWithRollOverTx.js +62 -0
- package/lib/utils/coveredCall/getUpdatePayoffConfigTx.d.ts +1 -0
- package/lib/utils/coveredCall/getUpdatePayoffConfigTx.js +62 -0
- package/lib/utils/getNewTimeOracleTx.d.ts +1 -0
- package/lib/utils/getNewTimeOracleTx.js +56 -0
- package/lib/utils/getSubVault.d.ts +0 -3
- package/lib/utils/getSubVault.js +51 -137
- package/lib/utils/getUpdateTimeOracleTx.d.ts +1 -0
- package/lib/utils/getUpdateTimeOracleTx.js +60 -0
- package/lib/utils/getVaultIndexInRegistry.d.ts +1 -0
- package/lib/utils/getVaultIndexInRegistry.js +56 -0
- package/package.json +1 -1
|
@@ -0,0 +1,555 @@
|
|
|
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 __read = (this && this.__read) || function (o, n) {
|
|
39
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
40
|
+
if (!m) return o;
|
|
41
|
+
var i = m.call(o), r, ar = [], e;
|
|
42
|
+
try {
|
|
43
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
44
|
+
}
|
|
45
|
+
catch (error) { e = { error: error }; }
|
|
46
|
+
finally {
|
|
47
|
+
try {
|
|
48
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
49
|
+
}
|
|
50
|
+
finally { if (e) throw e.error; }
|
|
51
|
+
}
|
|
52
|
+
return ar;
|
|
53
|
+
};
|
|
54
|
+
var __values = (this && this.__values) || function(o) {
|
|
55
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
56
|
+
if (m) return m.call(o);
|
|
57
|
+
if (o && typeof o.length === "number") return {
|
|
58
|
+
next: function () {
|
|
59
|
+
if (o && i >= o.length) o = void 0;
|
|
60
|
+
return { value: o && o[i++], done: !o };
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
64
|
+
};
|
|
65
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
66
|
+
var getNewOracleTx_1 = require("../utils/getNewOracleTx");
|
|
67
|
+
var getNewTimeOracleTx_1 = require("../utils/getNewTimeOracleTx");
|
|
68
|
+
var getUpdateOracleTx_1 = require("../utils/getUpdateOracleTx");
|
|
69
|
+
var getNewCoveredCallVaultTx_1 = require("../utils/coveredCall/getNewCoveredCallVaultTx");
|
|
70
|
+
var getDepositTx_1 = require("../utils/coveredCall/getDepositTx");
|
|
71
|
+
var constants_1 = require("../constants");
|
|
72
|
+
var sui_js_1 = require("@mysten/sui.js");
|
|
73
|
+
var getTypeArgumentFromToken_1 = require("../utils/getTypeArgumentFromToken");
|
|
74
|
+
var getUpdateTimeOracleTx_1 = require("../utils/getUpdateTimeOracleTx");
|
|
75
|
+
var getNewAuctionWithNextCoveredCallVaultTx_1 = require("../utils/coveredCall/getNewAuctionWithNextCoveredCallVaultTx");
|
|
76
|
+
var getNewBidTx_1 = require("../utils/coveredCall/getNewBidTx");
|
|
77
|
+
var getDeliveryTx_1 = require("../utils/coveredCall/getDeliveryTx");
|
|
78
|
+
var getUpdatePayoffConfigTx_1 = require("../utils/coveredCall/getUpdatePayoffConfigTx");
|
|
79
|
+
var provider = new sui_js_1.JsonRpcProvider(sui_js_1.Network.DEVNET); //for read only operations
|
|
80
|
+
var keypair = sui_js_1.Ed25519Keypair.deriveKeypair(constants_1.TEST_MNEMONIC);
|
|
81
|
+
var signer = new sui_js_1.RawSigner(keypair, provider);
|
|
82
|
+
var token = "0x82416a9dacea43afa6570863f1bcd3e55e75448e"; // minted token
|
|
83
|
+
var depositAmount = 5;
|
|
84
|
+
var decimal = 8;
|
|
85
|
+
var strike = 2000;
|
|
86
|
+
var isRolling = true;
|
|
87
|
+
var expirationTsMs1 = 1000000;
|
|
88
|
+
var expirationTsMs2 = 2000000;
|
|
89
|
+
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
90
|
+
var typeArgument, _a, priceOracle, priceOracleManager, _b, timeOracle, timeOracleManager, price, ts, vaultIndex, startAuctionTsMs, endAuctionTsMs, decaySpeed, initialPrice, finalPrice, currentTime, size, sellSize, premiumRoi;
|
|
91
|
+
return __generator(this, function (_c) {
|
|
92
|
+
switch (_c.label) {
|
|
93
|
+
case 0: return [4 /*yield*/, (0, getTypeArgumentFromToken_1.getTypeArgumentFromToken)(token)
|
|
94
|
+
//create price oracle and time oracle
|
|
95
|
+
//DONE
|
|
96
|
+
];
|
|
97
|
+
case 1:
|
|
98
|
+
typeArgument = _c.sent();
|
|
99
|
+
return [4 /*yield*/, createPriceOracle(typeArgument)];
|
|
100
|
+
case 2:
|
|
101
|
+
_a = __read.apply(void 0, [_c.sent(), 2]), priceOracle = _a[0], priceOracleManager = _a[1];
|
|
102
|
+
return [4 /*yield*/, createTimeOracle()
|
|
103
|
+
// update price oracle and time oracle
|
|
104
|
+
//DONE
|
|
105
|
+
];
|
|
106
|
+
case 3:
|
|
107
|
+
_b = __read.apply(void 0, [_c.sent()
|
|
108
|
+
// update price oracle and time oracle
|
|
109
|
+
//DONE
|
|
110
|
+
, 2]), timeOracle = _b[0], timeOracleManager = _b[1];
|
|
111
|
+
price = 10000000000;
|
|
112
|
+
ts = 0 //ms
|
|
113
|
+
;
|
|
114
|
+
return [4 /*yield*/, updatePriceOracle(priceOracle, priceOracleManager, typeArgument, price, ts)
|
|
115
|
+
// await updateTimeOracle(timeOracle, timeOracleManager, ts)
|
|
116
|
+
//create new vault
|
|
117
|
+
//DONE
|
|
118
|
+
];
|
|
119
|
+
case 4:
|
|
120
|
+
_c.sent();
|
|
121
|
+
// await updateTimeOracle(timeOracle, timeOracleManager, ts)
|
|
122
|
+
//create new vault
|
|
123
|
+
//DONE
|
|
124
|
+
return [4 /*yield*/, createNewVault(typeArgument, priceOracle)
|
|
125
|
+
//deposit to new vault
|
|
126
|
+
//DONE
|
|
127
|
+
];
|
|
128
|
+
case 5:
|
|
129
|
+
// await updateTimeOracle(timeOracle, timeOracleManager, ts)
|
|
130
|
+
//create new vault
|
|
131
|
+
//DONE
|
|
132
|
+
_c.sent();
|
|
133
|
+
return [4 /*yield*/, getNewestVaultIndex(constants_1.COVERED_CALL_REGISTRY)];
|
|
134
|
+
case 6:
|
|
135
|
+
vaultIndex = _c.sent();
|
|
136
|
+
return [4 /*yield*/, depositToVault(typeArgument, vaultIndex, depositAmount)
|
|
137
|
+
//================================start auction================================
|
|
138
|
+
//update price oracle and time oracle
|
|
139
|
+
//DONE
|
|
140
|
+
];
|
|
141
|
+
case 7:
|
|
142
|
+
_c.sent();
|
|
143
|
+
startAuctionTsMs = expirationTsMs1 - 1000;
|
|
144
|
+
return [4 /*yield*/, updatePriceOracle(priceOracle, priceOracleManager, typeArgument, price, startAuctionTsMs)];
|
|
145
|
+
case 8:
|
|
146
|
+
_c.sent();
|
|
147
|
+
return [4 /*yield*/, updateTimeOracle(timeOracle, timeOracleManager, startAuctionTsMs)
|
|
148
|
+
//new_auction_with_next_covered_call_vault
|
|
149
|
+
//DONE
|
|
150
|
+
];
|
|
151
|
+
case 9:
|
|
152
|
+
_c.sent();
|
|
153
|
+
endAuctionTsMs = startAuctionTsMs + 500;
|
|
154
|
+
decaySpeed = 2;
|
|
155
|
+
initialPrice = 500000000;
|
|
156
|
+
finalPrice = 100000000;
|
|
157
|
+
return [4 /*yield*/, createNewAuctionWithNextCoveredCallVault(typeArgument, vaultIndex, startAuctionTsMs, endAuctionTsMs, decaySpeed, initialPrice, finalPrice, expirationTsMs2, strike)
|
|
158
|
+
//update time oracle
|
|
159
|
+
//DONE
|
|
160
|
+
];
|
|
161
|
+
case 10:
|
|
162
|
+
_c.sent();
|
|
163
|
+
currentTime = startAuctionTsMs + 300;
|
|
164
|
+
return [4 /*yield*/, updateTimeOracle(timeOracle, timeOracleManager, currentTime)
|
|
165
|
+
//new bid
|
|
166
|
+
//DONE
|
|
167
|
+
];
|
|
168
|
+
case 11:
|
|
169
|
+
_c.sent();
|
|
170
|
+
size = 100;
|
|
171
|
+
return [4 /*yield*/, newBid(vaultIndex, size, token, timeOracle)
|
|
172
|
+
//check some data
|
|
173
|
+
//TODO
|
|
174
|
+
//update time oracle
|
|
175
|
+
//DONE
|
|
176
|
+
];
|
|
177
|
+
case 12:
|
|
178
|
+
_c.sent();
|
|
179
|
+
//check some data
|
|
180
|
+
//TODO
|
|
181
|
+
//update time oracle
|
|
182
|
+
//DONE
|
|
183
|
+
return [4 /*yield*/, updateTimeOracle(timeOracle, timeOracleManager, endAuctionTsMs + 1)
|
|
184
|
+
//delivery
|
|
185
|
+
//DONE
|
|
186
|
+
];
|
|
187
|
+
case 13:
|
|
188
|
+
//check some data
|
|
189
|
+
//TODO
|
|
190
|
+
//update time oracle
|
|
191
|
+
//DONE
|
|
192
|
+
_c.sent();
|
|
193
|
+
sellSize = 1;
|
|
194
|
+
return [4 /*yield*/, delivery(vaultIndex, sellSize, timeOracle)
|
|
195
|
+
//================================end auction================================
|
|
196
|
+
//update price oracle and time oracle
|
|
197
|
+
//DONE
|
|
198
|
+
];
|
|
199
|
+
case 14:
|
|
200
|
+
_c.sent();
|
|
201
|
+
//================================end auction================================
|
|
202
|
+
//update price oracle and time oracle
|
|
203
|
+
//DONE
|
|
204
|
+
return [4 /*yield*/, updatePriceOracle(priceOracle, priceOracleManager, typeArgument, price, endAuctionTsMs)];
|
|
205
|
+
case 15:
|
|
206
|
+
//================================end auction================================
|
|
207
|
+
//update price oracle and time oracle
|
|
208
|
+
//DONE
|
|
209
|
+
_c.sent();
|
|
210
|
+
return [4 /*yield*/, updateTimeOracle(timeOracle, timeOracleManager, endAuctionTsMs)
|
|
211
|
+
//update payoff config
|
|
212
|
+
//DONE
|
|
213
|
+
];
|
|
214
|
+
case 16:
|
|
215
|
+
_c.sent();
|
|
216
|
+
premiumRoi = 100000;
|
|
217
|
+
return [4 /*yield*/, updatePayoffConfig(vaultIndex, price, premiumRoi)
|
|
218
|
+
//update price oracle and time oracle
|
|
219
|
+
//TODO
|
|
220
|
+
//settle
|
|
221
|
+
//TODO
|
|
222
|
+
];
|
|
223
|
+
case 17:
|
|
224
|
+
_c.sent();
|
|
225
|
+
return [2 /*return*/];
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
}); })();
|
|
229
|
+
function createPriceOracle(typeArgument) {
|
|
230
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
231
|
+
var _this = this;
|
|
232
|
+
return __generator(this, function (_a) {
|
|
233
|
+
return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
|
|
234
|
+
var newOracleTx, moveCallTxn, digest, txn, priceOracle, managerCap, e_1;
|
|
235
|
+
return __generator(this, function (_a) {
|
|
236
|
+
switch (_a.label) {
|
|
237
|
+
case 0:
|
|
238
|
+
_a.trys.push([0, 4, , 5]);
|
|
239
|
+
console.log("create new price oracle...");
|
|
240
|
+
return [4 /*yield*/, (0, getNewOracleTx_1.getNewOracleTx)(constants_1.ORACLE_PACKAGE, typeArgument, decimal)];
|
|
241
|
+
case 1:
|
|
242
|
+
newOracleTx = _a.sent();
|
|
243
|
+
return [4 /*yield*/, signer.executeMoveCall(newOracleTx)];
|
|
244
|
+
case 2:
|
|
245
|
+
moveCallTxn = _a.sent();
|
|
246
|
+
digest = moveCallTxn.EffectsCert.certificate.transactionDigest;
|
|
247
|
+
return [4 /*yield*/, provider.getTransactionWithEffects(digest)];
|
|
248
|
+
case 3:
|
|
249
|
+
txn = _a.sent();
|
|
250
|
+
priceOracle = void 0;
|
|
251
|
+
managerCap = void 0;
|
|
252
|
+
if (txn.effects.created[0].owner["AddressOwner"] == undefined) {
|
|
253
|
+
priceOracle = txn.effects.created[0].reference.objectId;
|
|
254
|
+
managerCap = txn.effects.created[1].reference.objectId;
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
priceOracle = txn.effects.created[1].reference.objectId;
|
|
258
|
+
managerCap = txn.effects.created[0].reference.objectId;
|
|
259
|
+
}
|
|
260
|
+
resolve([priceOracle, managerCap]);
|
|
261
|
+
return [3 /*break*/, 5];
|
|
262
|
+
case 4:
|
|
263
|
+
e_1 = _a.sent();
|
|
264
|
+
console.error("err in createPriceOracle");
|
|
265
|
+
reject(e_1);
|
|
266
|
+
return [3 /*break*/, 5];
|
|
267
|
+
case 5: return [2 /*return*/];
|
|
268
|
+
}
|
|
269
|
+
});
|
|
270
|
+
}); })];
|
|
271
|
+
});
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
function createTimeOracle() {
|
|
275
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
276
|
+
var _this = this;
|
|
277
|
+
return __generator(this, function (_a) {
|
|
278
|
+
return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
|
|
279
|
+
var newTimeOracleTx, moveCallTxn, digest, txn, timeOracle, managerCap, e_2;
|
|
280
|
+
return __generator(this, function (_a) {
|
|
281
|
+
switch (_a.label) {
|
|
282
|
+
case 0:
|
|
283
|
+
_a.trys.push([0, 4, , 5]);
|
|
284
|
+
console.log("create new time oracle...");
|
|
285
|
+
return [4 /*yield*/, (0, getNewTimeOracleTx_1.getNewTimeOracleTx)(constants_1.ORACLE_PACKAGE)];
|
|
286
|
+
case 1:
|
|
287
|
+
newTimeOracleTx = _a.sent();
|
|
288
|
+
return [4 /*yield*/, signer.executeMoveCall(newTimeOracleTx)];
|
|
289
|
+
case 2:
|
|
290
|
+
moveCallTxn = _a.sent();
|
|
291
|
+
digest = moveCallTxn.EffectsCert.certificate.transactionDigest;
|
|
292
|
+
return [4 /*yield*/, provider.getTransactionWithEffects(digest)];
|
|
293
|
+
case 3:
|
|
294
|
+
txn = _a.sent();
|
|
295
|
+
timeOracle = void 0;
|
|
296
|
+
managerCap = void 0;
|
|
297
|
+
if (txn.effects.created[0].owner["AddressOwner"] == undefined) {
|
|
298
|
+
timeOracle = txn.effects.created[0].reference.objectId;
|
|
299
|
+
managerCap = txn.effects.created[1].reference.objectId;
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
302
|
+
timeOracle = txn.effects.created[1].reference.objectId;
|
|
303
|
+
managerCap = txn.effects.created[0].reference.objectId;
|
|
304
|
+
}
|
|
305
|
+
resolve([timeOracle, managerCap]);
|
|
306
|
+
return [3 /*break*/, 5];
|
|
307
|
+
case 4:
|
|
308
|
+
e_2 = _a.sent();
|
|
309
|
+
console.log("err in createTimeOracle");
|
|
310
|
+
reject(e_2);
|
|
311
|
+
return [3 /*break*/, 5];
|
|
312
|
+
case 5: return [2 /*return*/];
|
|
313
|
+
}
|
|
314
|
+
});
|
|
315
|
+
}); })];
|
|
316
|
+
});
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
function updatePriceOracle(priceOracle, priceOracleManager, typeArgument, price, ts) {
|
|
320
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
321
|
+
var _this = this;
|
|
322
|
+
return __generator(this, function (_a) {
|
|
323
|
+
return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
|
|
324
|
+
var updateOracleTx, e_3;
|
|
325
|
+
return __generator(this, function (_a) {
|
|
326
|
+
switch (_a.label) {
|
|
327
|
+
case 0:
|
|
328
|
+
_a.trys.push([0, 3, , 4]);
|
|
329
|
+
return [4 /*yield*/, (0, getUpdateOracleTx_1.getUpdateOracleTx)(constants_1.ORACLE_PACKAGE, typeArgument, priceOracle, priceOracleManager, price, ts)];
|
|
330
|
+
case 1:
|
|
331
|
+
updateOracleTx = _a.sent();
|
|
332
|
+
return [4 /*yield*/, signer.executeMoveCall(updateOracleTx)];
|
|
333
|
+
case 2:
|
|
334
|
+
_a.sent();
|
|
335
|
+
return [3 /*break*/, 4];
|
|
336
|
+
case 3:
|
|
337
|
+
e_3 = _a.sent();
|
|
338
|
+
console.error("err in updatePriceOracle");
|
|
339
|
+
reject();
|
|
340
|
+
return [3 /*break*/, 4];
|
|
341
|
+
case 4: return [2 /*return*/];
|
|
342
|
+
}
|
|
343
|
+
});
|
|
344
|
+
}); })];
|
|
345
|
+
});
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
function updateTimeOracle(timeOracle, managerCap, ts) {
|
|
349
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
350
|
+
var _this = this;
|
|
351
|
+
return __generator(this, function (_a) {
|
|
352
|
+
return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
|
|
353
|
+
var updateTimeOracleTx, e_4;
|
|
354
|
+
return __generator(this, function (_a) {
|
|
355
|
+
switch (_a.label) {
|
|
356
|
+
case 0:
|
|
357
|
+
_a.trys.push([0, 3, , 4]);
|
|
358
|
+
return [4 /*yield*/, (0, getUpdateTimeOracleTx_1.getUpdateTimeOracleTx)(constants_1.ORACLE_PACKAGE, timeOracle, managerCap, ts)];
|
|
359
|
+
case 1:
|
|
360
|
+
updateTimeOracleTx = _a.sent();
|
|
361
|
+
return [4 /*yield*/, signer.executeMoveCall(updateTimeOracleTx)];
|
|
362
|
+
case 2:
|
|
363
|
+
_a.sent();
|
|
364
|
+
return [3 /*break*/, 4];
|
|
365
|
+
case 3:
|
|
366
|
+
e_4 = _a.sent();
|
|
367
|
+
console.error("err in updateTimeOracle");
|
|
368
|
+
reject();
|
|
369
|
+
return [3 /*break*/, 4];
|
|
370
|
+
case 4: return [2 /*return*/];
|
|
371
|
+
}
|
|
372
|
+
});
|
|
373
|
+
}); })];
|
|
374
|
+
});
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
function createNewVault(typeArgument, priceOracle) {
|
|
378
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
379
|
+
var _this = this;
|
|
380
|
+
return __generator(this, function (_a) {
|
|
381
|
+
return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
|
|
382
|
+
var newCoveredCallVaultTx, moveCallTxn, e_5;
|
|
383
|
+
return __generator(this, function (_a) {
|
|
384
|
+
switch (_a.label) {
|
|
385
|
+
case 0:
|
|
386
|
+
_a.trys.push([0, 4, , 5]);
|
|
387
|
+
return [4 /*yield*/, (0, getNewCoveredCallVaultTx_1.getNewCoveredCallVaultTx)(constants_1.COVERED_CALL_PACKAGE, constants_1.COVERED_CALL_REGISTRY, typeArgument, constants_1.COVERED_CALL_MANAGER, expirationTsMs1, strike)];
|
|
388
|
+
case 1:
|
|
389
|
+
newCoveredCallVaultTx = _a.sent();
|
|
390
|
+
return [4 /*yield*/, signer.executeMoveCall(newCoveredCallVaultTx)];
|
|
391
|
+
case 2:
|
|
392
|
+
moveCallTxn = _a.sent();
|
|
393
|
+
return [4 /*yield*/, checkData(moveCallTxn)];
|
|
394
|
+
case 3:
|
|
395
|
+
_a.sent();
|
|
396
|
+
return [3 /*break*/, 5];
|
|
397
|
+
case 4:
|
|
398
|
+
e_5 = _a.sent();
|
|
399
|
+
console.error("err in createNewVault");
|
|
400
|
+
reject();
|
|
401
|
+
return [3 /*break*/, 5];
|
|
402
|
+
case 5: return [2 /*return*/];
|
|
403
|
+
}
|
|
404
|
+
});
|
|
405
|
+
}); })];
|
|
406
|
+
});
|
|
407
|
+
});
|
|
408
|
+
}
|
|
409
|
+
function checkData(moveCallTxn) {
|
|
410
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
411
|
+
var txn, _a, _b, obj, e_6;
|
|
412
|
+
var e_7, _c;
|
|
413
|
+
return __generator(this, function (_d) {
|
|
414
|
+
switch (_d.label) {
|
|
415
|
+
case 0:
|
|
416
|
+
_d.trys.push([0, 2, , 3]);
|
|
417
|
+
return [4 /*yield*/, provider.getTransactionWithEffects(
|
|
418
|
+
//@ts-ignore
|
|
419
|
+
moveCallTxn.EffectsCert.certificate.transactionDigest)];
|
|
420
|
+
case 1:
|
|
421
|
+
txn = _d.sent();
|
|
422
|
+
try {
|
|
423
|
+
for (_a = __values(txn.effects.created), _b = _a.next(); !_b.done; _b = _a.next()) {
|
|
424
|
+
obj = _b.value;
|
|
425
|
+
//@ts-ignore
|
|
426
|
+
if (obj.owner.ObjectOwner == constants_1.COVERED_CALL_REGISTRY)
|
|
427
|
+
console.log("new covered call vault: " + obj.reference.objectId);
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
431
|
+
finally {
|
|
432
|
+
try {
|
|
433
|
+
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
434
|
+
}
|
|
435
|
+
finally { if (e_7) throw e_7.error; }
|
|
436
|
+
}
|
|
437
|
+
return [3 /*break*/, 3];
|
|
438
|
+
case 2:
|
|
439
|
+
e_6 = _d.sent();
|
|
440
|
+
console.error(e_6);
|
|
441
|
+
return [3 /*break*/, 3];
|
|
442
|
+
case 3: return [2 /*return*/];
|
|
443
|
+
}
|
|
444
|
+
});
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
function getNewestVaultIndex(registry) {
|
|
448
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
449
|
+
var tmp, numOfVault;
|
|
450
|
+
return __generator(this, function (_a) {
|
|
451
|
+
switch (_a.label) {
|
|
452
|
+
case 0: return [4 /*yield*/, provider.getObject(registry)
|
|
453
|
+
//@ts-ignore
|
|
454
|
+
];
|
|
455
|
+
case 1:
|
|
456
|
+
tmp = _a.sent();
|
|
457
|
+
numOfVault = tmp.details.data.fields.num_of_vault;
|
|
458
|
+
return [2 /*return*/, numOfVault - 1];
|
|
459
|
+
}
|
|
460
|
+
});
|
|
461
|
+
});
|
|
462
|
+
}
|
|
463
|
+
function depositToVault(typeArgument, vaultIndex, depositAmount) {
|
|
464
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
465
|
+
var _this = this;
|
|
466
|
+
return __generator(this, function (_a) {
|
|
467
|
+
return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
|
|
468
|
+
var depositTx, e_8;
|
|
469
|
+
return __generator(this, function (_a) {
|
|
470
|
+
switch (_a.label) {
|
|
471
|
+
case 0:
|
|
472
|
+
_a.trys.push([0, 3, , 4]);
|
|
473
|
+
return [4 /*yield*/, (0, getDepositTx_1.getDepositTx)(constants_1.COVERED_CALL_PACKAGE, constants_1.COVERED_CALL_REGISTRY, typeArgument, vaultIndex, isRolling, token, depositAmount)];
|
|
474
|
+
case 1:
|
|
475
|
+
depositTx = _a.sent();
|
|
476
|
+
return [4 /*yield*/, signer.executeMoveCall(depositTx)];
|
|
477
|
+
case 2:
|
|
478
|
+
_a.sent();
|
|
479
|
+
return [3 /*break*/, 4];
|
|
480
|
+
case 3:
|
|
481
|
+
e_8 = _a.sent();
|
|
482
|
+
console.error("err in depositToVault");
|
|
483
|
+
reject();
|
|
484
|
+
return [3 /*break*/, 4];
|
|
485
|
+
case 4: return [2 /*return*/];
|
|
486
|
+
}
|
|
487
|
+
});
|
|
488
|
+
}); })];
|
|
489
|
+
});
|
|
490
|
+
});
|
|
491
|
+
}
|
|
492
|
+
function createNewAuctionWithNextCoveredCallVault(typeArgument, vaultIndex, startAuctionTsMs, endAuctionTsMs, decaySpeed, initialPrice, finalPrice, expirationTsMs2, strike) {
|
|
493
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
494
|
+
var txn;
|
|
495
|
+
return __generator(this, function (_a) {
|
|
496
|
+
switch (_a.label) {
|
|
497
|
+
case 0: return [4 /*yield*/, (0, getNewAuctionWithNextCoveredCallVaultTx_1.getNewAuctionWithNextCoveredCallVaultTx)(constants_1.COVERED_CALL_PACKAGE, constants_1.COVERED_CALL_MANAGER, constants_1.COVERED_CALL_REGISTRY, typeArgument, vaultIndex, startAuctionTsMs, endAuctionTsMs, decaySpeed, initialPrice, finalPrice, expirationTsMs2, strike)];
|
|
498
|
+
case 1:
|
|
499
|
+
txn = _a.sent();
|
|
500
|
+
return [4 /*yield*/, signer.executeMoveCall(txn)];
|
|
501
|
+
case 2:
|
|
502
|
+
_a.sent();
|
|
503
|
+
return [2 /*return*/];
|
|
504
|
+
}
|
|
505
|
+
});
|
|
506
|
+
});
|
|
507
|
+
}
|
|
508
|
+
function newBid(vaultIndex, size, token, timeOracle) {
|
|
509
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
510
|
+
var newBidTx;
|
|
511
|
+
return __generator(this, function (_a) {
|
|
512
|
+
switch (_a.label) {
|
|
513
|
+
case 0: return [4 /*yield*/, (0, getNewBidTx_1.getNewBidTx)(constants_1.COVERED_CALL_PACKAGE, constants_1.COVERED_CALL_REGISTRY, constants_1.DEFAULT_TYPE_ARGUMENT, vaultIndex, size, token, timeOracle)];
|
|
514
|
+
case 1:
|
|
515
|
+
newBidTx = _a.sent();
|
|
516
|
+
return [4 /*yield*/, signer.executeMoveCall(newBidTx)];
|
|
517
|
+
case 2:
|
|
518
|
+
_a.sent();
|
|
519
|
+
return [2 /*return*/];
|
|
520
|
+
}
|
|
521
|
+
});
|
|
522
|
+
});
|
|
523
|
+
}
|
|
524
|
+
function delivery(vaultIndex, sellSize, timeOracle) {
|
|
525
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
526
|
+
var deliveryTx;
|
|
527
|
+
return __generator(this, function (_a) {
|
|
528
|
+
switch (_a.label) {
|
|
529
|
+
case 0: return [4 /*yield*/, (0, getDeliveryTx_1.getDeliveryTx)(constants_1.COVERED_CALL_PACKAGE, constants_1.COVERED_CALL_MANAGER, constants_1.COVERED_CALL_REGISTRY, constants_1.DEFAULT_TYPE_ARGUMENT, vaultIndex, sellSize, timeOracle)];
|
|
530
|
+
case 1:
|
|
531
|
+
deliveryTx = _a.sent();
|
|
532
|
+
return [4 /*yield*/, signer.executeMoveCall(deliveryTx)];
|
|
533
|
+
case 2:
|
|
534
|
+
_a.sent();
|
|
535
|
+
return [2 /*return*/];
|
|
536
|
+
}
|
|
537
|
+
});
|
|
538
|
+
});
|
|
539
|
+
}
|
|
540
|
+
function updatePayoffConfig(vaultIndex, price, premiumRoi) {
|
|
541
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
542
|
+
var updatePayoffConfigTx;
|
|
543
|
+
return __generator(this, function (_a) {
|
|
544
|
+
switch (_a.label) {
|
|
545
|
+
case 0: return [4 /*yield*/, (0, getUpdatePayoffConfigTx_1.getUpdatePayoffConfigTx)(constants_1.COVERED_CALL_PACKAGE, constants_1.COVERED_CALL_REGISTRY, constants_1.DEFAULT_TYPE_ARGUMENT, constants_1.COVERED_CALL_MANAGER, vaultIndex, price, premiumRoi)];
|
|
546
|
+
case 1:
|
|
547
|
+
updatePayoffConfigTx = _a.sent();
|
|
548
|
+
return [4 /*yield*/, signer.executeMoveCall(updatePayoffConfigTx)];
|
|
549
|
+
case 2:
|
|
550
|
+
_a.sent();
|
|
551
|
+
return [2 /*return*/];
|
|
552
|
+
}
|
|
553
|
+
});
|
|
554
|
+
});
|
|
555
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getClaimAllTx(packageId: string, registry: string, typeArgument: string, index: number, isRolling: boolean): Promise<any>;
|
|
@@ -0,0 +1,60 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.getClaimAllTx = void 0;
|
|
40
|
+
function getClaimAllTx(packageId, registry, typeArgument, index, isRolling) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
42
|
+
var tx;
|
|
43
|
+
return __generator(this, function (_a) {
|
|
44
|
+
tx = {
|
|
45
|
+
packageObjectId: packageId,
|
|
46
|
+
module: 'covered_call',
|
|
47
|
+
function: 'claim_all',
|
|
48
|
+
typeArguments: [typeArgument],
|
|
49
|
+
arguments: [
|
|
50
|
+
registry,
|
|
51
|
+
index,
|
|
52
|
+
isRolling,
|
|
53
|
+
],
|
|
54
|
+
gasBudget: 10000,
|
|
55
|
+
};
|
|
56
|
+
return [2 /*return*/, tx];
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
exports.getClaimAllTx = getClaimAllTx;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getClaimTx(packageId: string, registry: string, typeArgument: string, index: number, amount: number, isRolling: boolean): Promise<any>;
|