@typus/typus-sdk 0.2.1 → 0.2.3
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/README.md +6 -3
- package/lib/constants.d.ts +11 -9
- package/lib/constants.js +12 -10
- package/lib/scripts/coveredCall/getNewCoveredCallVaultTx.js +7 -2
- package/lib/scripts/coveredCall/getUpdatePayoffConfigTx.js +3 -2
- package/lib/{scripts/getCoveredCallVaultAsset.d.ts → test/getUsersShares.d.ts} +0 -0
- package/lib/{scripts/getCoveredCallVaultAsset.js → test/getUsersShares.js} +6 -9
- package/lib/test/{getUserDepositData.d.ts → getVaultData.d.ts} +0 -0
- package/lib/test/{getUserDepositData.js → getVaultData.js} +6 -18
- package/lib/test/testClaim.d.ts +1 -0
- package/lib/test/testClaim.js +81 -0
- package/lib/test/testDeposit.js +2 -2
- package/lib/test/testMint.js +5 -1
- package/lib/test/testNewVault.js +35 -61
- package/lib/test/testOracle.js +4 -0
- package/lib/test/testSettle.js +139 -142
- package/lib/utils/coveredCall/createTimeOracle.d.ts +1 -0
- package/lib/utils/coveredCall/createTimeOracle.js +91 -0
- package/lib/utils/coveredCall/getClaimAllTx.js +2 -2
- package/lib/utils/coveredCall/getDepositTx.js +1 -1
- package/lib/utils/coveredCall/getNewCoveredCallVaultTx.d.ts +1 -1
- package/lib/utils/coveredCall/getNewCoveredCallVaultTx.js +6 -1
- package/lib/utils/coveredCall/getUpdatePayoffConfigTx.d.ts +1 -1
- package/lib/utils/coveredCall/getUpdatePayoffConfigTx.js +2 -1
- package/lib/utils/fetchData.d.ts +19 -0
- package/lib/utils/fetchData.js +21 -12
- package/lib/utils/getTypeArgumentFromToken.js +5 -3
- package/lib/utils/getUsersShares.d.ts +8 -0
- package/lib/utils/getUsersShares.js +145 -0
- package/lib/utils/getVaultData.d.ts +2 -0
- package/lib/utils/getVaultData.js +135 -0
- package/lib/utils/getVaultIndexInRegistry.js +4 -0
- package/lib/utils/isObjAvailable.d.ts +1 -0
- package/lib/utils/{getCoveredCallVaultAsset.js → isObjAvailable.js} +17 -9
- package/package.json +3 -2
- package/lib/utils/getCoveredCallVaultAsset.d.ts +0 -1
- package/lib/utils/getSubVault.d.ts +0 -0
- package/lib/utils/getSubVault.js +0 -52
package/README.md
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
# typus-sdk
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Install
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
6
|
npm i
|
|
7
7
|
```
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
## For Frontend
|
|
9
|
+
* The payload to call is in utils/ , and file name is get...Tx.ts (EX:getClaimTx.ts). It will return a tx.
|
|
10
|
+
* In scripts/ , the simple example file name to send variable into payload is get...Tx.ts (EX:getClaimTx.ts).
|
|
11
|
+
* Frontend can refer to scripts/ to call utils/ tx and send it.
|
|
12
|
+
## For integration testing
|
|
10
13
|
### simple test for important function
|
|
11
14
|
|
|
12
15
|
```bash
|
package/lib/constants.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
export declare const TOKEN_PACKAGE = "
|
|
2
|
-
export declare const TOKEN_REGISTRY_BTC = "
|
|
3
|
-
export declare const TOKEN_REGISTRY_ETH = "
|
|
4
|
-
export declare const TOKEN_REGISTRY_SUI = "
|
|
5
|
-
export declare const ORACLE_PACKAGE = "
|
|
6
|
-
export declare const COVERED_CALL_PACKAGE = "
|
|
7
|
-
export declare const COVERED_CALL_REGISTRY = "
|
|
8
|
-
export declare const COVERED_CALL_MANAGER = "
|
|
9
|
-
export declare const
|
|
1
|
+
export declare const TOKEN_PACKAGE = "0x97cfaa5d2a79c1be5da410870deb258ed5f42561";
|
|
2
|
+
export declare const TOKEN_REGISTRY_BTC = "0xb10e4bf339c2495d793647fa726fd5427ca8c328";
|
|
3
|
+
export declare const TOKEN_REGISTRY_ETH = "0x59c42da8bb8a3b98a764985af1d9cef7e6e9f87d";
|
|
4
|
+
export declare const TOKEN_REGISTRY_SUI = "0xf4a1954d812748ee08dd4c4c1e21bb136a6c089e";
|
|
5
|
+
export declare const ORACLE_PACKAGE = "0x437d2eb473bd348ad22b37ffb84bd652656026b1";
|
|
6
|
+
export declare const COVERED_CALL_PACKAGE = "0x5ece57f5f85a00ad812afd9a4a7b7781d157f7ed";
|
|
7
|
+
export declare const COVERED_CALL_REGISTRY = "0x189cf44a4a1daa77df7aab6d5894e2712843c2c9";
|
|
8
|
+
export declare const COVERED_CALL_MANAGER = "0x7e39015e03494ebcb976120a0ac2f112c1602dc2";
|
|
9
|
+
export declare const USER_SHARE_TABLE = "0x59cd2080bfc2ac8bbf917339372f1c36d44431c5";
|
|
10
|
+
export declare const MAKER_SHARE_TABLE = "0x4b3457ee86bd47048006b181738dd5a29263d4b2";
|
|
11
|
+
export declare const DOV_PACKAGE = "0x3674cf36f02160cdf3fd983629fed062f2306461";
|
|
10
12
|
export declare const DEFAULT_TYPE_ARGUMENT = "0x2::sui::SUI";
|
|
11
13
|
export declare const FAKE_TOKEN_TYPE_ARGUMENT = "0x27b3674c685046f66cad1d5496d2967894fa5329::token::USDC";
|
|
12
14
|
export declare const TEST_MNEMONIC = "plug grain matter asthma aware critic can lottery blouse uncover sauce speak";
|
package/lib/constants.js
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TOKEN_NAME_TO_MODULE = exports.TOKEN_NAME = exports.TEST_MNEMONIC = exports.FAKE_TOKEN_TYPE_ARGUMENT = exports.DEFAULT_TYPE_ARGUMENT = exports.DOV_PACKAGE = exports.COVERED_CALL_MANAGER = exports.COVERED_CALL_REGISTRY = exports.COVERED_CALL_PACKAGE = exports.ORACLE_PACKAGE = exports.TOKEN_REGISTRY_SUI = exports.TOKEN_REGISTRY_ETH = exports.TOKEN_REGISTRY_BTC = exports.TOKEN_PACKAGE = void 0;
|
|
3
|
+
exports.TOKEN_NAME_TO_MODULE = exports.TOKEN_NAME = exports.TEST_MNEMONIC = exports.FAKE_TOKEN_TYPE_ARGUMENT = exports.DEFAULT_TYPE_ARGUMENT = exports.DOV_PACKAGE = exports.MAKER_SHARE_TABLE = exports.USER_SHARE_TABLE = exports.COVERED_CALL_MANAGER = exports.COVERED_CALL_REGISTRY = exports.COVERED_CALL_PACKAGE = exports.ORACLE_PACKAGE = exports.TOKEN_REGISTRY_SUI = exports.TOKEN_REGISTRY_ETH = exports.TOKEN_REGISTRY_BTC = exports.TOKEN_PACKAGE = void 0;
|
|
4
4
|
//publish from sui-dev-token
|
|
5
|
-
exports.TOKEN_PACKAGE = "
|
|
6
|
-
exports.TOKEN_REGISTRY_BTC = "
|
|
7
|
-
exports.TOKEN_REGISTRY_ETH = "
|
|
8
|
-
exports.TOKEN_REGISTRY_SUI = "
|
|
5
|
+
exports.TOKEN_PACKAGE = "0x97cfaa5d2a79c1be5da410870deb258ed5f42561";
|
|
6
|
+
exports.TOKEN_REGISTRY_BTC = "0xb10e4bf339c2495d793647fa726fd5427ca8c328"; //fake btc registry
|
|
7
|
+
exports.TOKEN_REGISTRY_ETH = "0x59c42da8bb8a3b98a764985af1d9cef7e6e9f87d"; //fake eth registry
|
|
8
|
+
exports.TOKEN_REGISTRY_SUI = "0xf4a1954d812748ee08dd4c4c1e21bb136a6c089e"; //fake usdc registry
|
|
9
9
|
//publish from typus-oracle
|
|
10
|
-
exports.ORACLE_PACKAGE = "
|
|
10
|
+
exports.ORACLE_PACKAGE = "0x437d2eb473bd348ad22b37ffb84bd652656026b1";
|
|
11
11
|
//publish from typus-dov/cover_call
|
|
12
|
-
exports.COVERED_CALL_PACKAGE = "
|
|
13
|
-
exports.COVERED_CALL_REGISTRY = "
|
|
14
|
-
exports.COVERED_CALL_MANAGER = "
|
|
12
|
+
exports.COVERED_CALL_PACKAGE = "0x5ece57f5f85a00ad812afd9a4a7b7781d157f7ed";
|
|
13
|
+
exports.COVERED_CALL_REGISTRY = "0x189cf44a4a1daa77df7aab6d5894e2712843c2c9";
|
|
14
|
+
exports.COVERED_CALL_MANAGER = "0x7e39015e03494ebcb976120a0ac2f112c1602dc2";
|
|
15
|
+
exports.USER_SHARE_TABLE = "0x59cd2080bfc2ac8bbf917339372f1c36d44431c5";
|
|
16
|
+
exports.MAKER_SHARE_TABLE = "0x4b3457ee86bd47048006b181738dd5a29263d4b2";
|
|
15
17
|
//publish from typus-dov/typus-dov
|
|
16
|
-
exports.DOV_PACKAGE = "
|
|
18
|
+
exports.DOV_PACKAGE = "0x3674cf36f02160cdf3fd983629fed062f2306461";
|
|
17
19
|
exports.DEFAULT_TYPE_ARGUMENT = "0x2::sui::SUI";
|
|
18
20
|
exports.FAKE_TOKEN_TYPE_ARGUMENT = "0x27b3674c685046f66cad1d5496d2967894fa5329::token::USDC";
|
|
19
21
|
exports.TEST_MNEMONIC = "plug grain matter asthma aware critic can lottery blouse uncover sauce speak";
|
|
@@ -39,14 +39,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
var getNewCoveredCallVaultTx_1 = require("../../utils/coveredCall/getNewCoveredCallVaultTx");
|
|
40
40
|
var constants_1 = require("../../constants");
|
|
41
41
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
42
|
-
var expiration, strike, newCoveredCallVaultTx;
|
|
42
|
+
var expiration, strike, tokenDecimal, shareDecimal, timeOracle, period, start, newCoveredCallVaultTx;
|
|
43
43
|
return __generator(this, function (_a) {
|
|
44
44
|
switch (_a.label) {
|
|
45
45
|
case 0:
|
|
46
46
|
console.log("test for getNewCoveredCallVaultTx()");
|
|
47
47
|
expiration = 123;
|
|
48
48
|
strike = 456;
|
|
49
|
-
|
|
49
|
+
tokenDecimal = 9;
|
|
50
|
+
shareDecimal = 4;
|
|
51
|
+
timeOracle = "";
|
|
52
|
+
period = 0;
|
|
53
|
+
start = 0;
|
|
54
|
+
return [4 /*yield*/, (0, getNewCoveredCallVaultTx_1.getNewCoveredCallVaultTx)(constants_1.COVERED_CALL_PACKAGE, constants_1.COVERED_CALL_REGISTRY, constants_1.DEFAULT_TYPE_ARGUMENT, constants_1.COVERED_CALL_MANAGER, tokenDecimal, shareDecimal, timeOracle, period, start, expiration, strike)];
|
|
50
55
|
case 1:
|
|
51
56
|
newCoveredCallVaultTx = _a.sent();
|
|
52
57
|
console.log(newCoveredCallVaultTx);
|
|
@@ -39,7 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
var getUpdatePayoffConfigTx_1 = require("../../utils/coveredCall/getUpdatePayoffConfigTx");
|
|
40
40
|
var constants_1 = require("../../constants");
|
|
41
41
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
42
|
-
var index, price, roi, updatePayoffConfigTx;
|
|
42
|
+
var index, price, roi, exposureRatio, updatePayoffConfigTx;
|
|
43
43
|
return __generator(this, function (_a) {
|
|
44
44
|
switch (_a.label) {
|
|
45
45
|
case 0:
|
|
@@ -47,7 +47,8 @@ var constants_1 = require("../../constants");
|
|
|
47
47
|
index = 0;
|
|
48
48
|
price = 4000;
|
|
49
49
|
roi = 1000;
|
|
50
|
-
|
|
50
|
+
exposureRatio = 100000;
|
|
51
|
+
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, index, price, roi, exposureRatio)];
|
|
51
52
|
case 1:
|
|
52
53
|
updatePayoffConfigTx = _a.sent();
|
|
53
54
|
console.log(updatePayoffConfigTx);
|
|
File without changes
|
|
@@ -36,19 +36,16 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
var
|
|
39
|
+
var constants_1 = require("../constants");
|
|
40
|
+
var getUsersShares_1 = require("../utils/getUsersShares");
|
|
40
41
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
41
|
-
var
|
|
42
|
+
var usersShares;
|
|
42
43
|
return __generator(this, function (_a) {
|
|
43
44
|
switch (_a.label) {
|
|
44
|
-
case 0:
|
|
45
|
-
console.log("test for getCoveredCallVaultAsset()");
|
|
46
|
-
testVault = "0xbf816f4205de83403f4fd388d608c6552dc2b2de";
|
|
47
|
-
return [4 /*yield*/, (0, getCoveredCallVaultAsset_1.getCoveredCallVaultAsset)(testVault)];
|
|
45
|
+
case 0: return [4 /*yield*/, (0, getUsersShares_1.getUsersShares)(constants_1.USER_SHARE_TABLE, constants_1.COVERED_CALL_REGISTRY)];
|
|
48
46
|
case 1:
|
|
49
|
-
|
|
50
|
-
console.log(
|
|
51
|
-
console.log(asset);
|
|
47
|
+
usersShares = _a.sent();
|
|
48
|
+
console.log(usersShares);
|
|
52
49
|
return [2 /*return*/];
|
|
53
50
|
}
|
|
54
51
|
});
|
|
File without changes
|
|
@@ -37,28 +37,16 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
var constants_1 = require("../constants");
|
|
40
|
-
var
|
|
41
|
-
/*
|
|
42
|
-
test sub vault:
|
|
43
|
-
0x1395a87663995fe2040fecf1866a01f9a0270fc2
|
|
44
|
-
test table under sub vault:
|
|
45
|
-
0x0fda36c64af91d4f9c946f00c6f13194c37493ab
|
|
46
|
-
test linked list node:
|
|
47
|
-
0x933ab335ef83ef247ae43f537f9a76317feb7358
|
|
48
|
-
*/
|
|
40
|
+
var getVaultData_1 = require("../utils/getVaultData");
|
|
49
41
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
50
|
-
var
|
|
42
|
+
var res;
|
|
51
43
|
return __generator(this, function (_a) {
|
|
52
44
|
switch (_a.label) {
|
|
53
|
-
case 0:
|
|
54
|
-
userA = "0x81c962005db9bd02711b00909cd28a707ec0a248";
|
|
55
|
-
return [4 /*yield*/, (0, loadUsersDepositData_1.loadUsersDepositData)(constants_1.COVERED_CALL_REGISTRY)];
|
|
45
|
+
case 0: return [4 /*yield*/, (0, getVaultData_1.getVaultDataFromRegistry)(constants_1.COVERED_CALL_REGISTRY)];
|
|
56
46
|
case 1:
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
console.log("userA data in usersDepositData");
|
|
61
|
-
console.log(usersDepositData.get(userA));
|
|
47
|
+
res = _a.sent();
|
|
48
|
+
console.log("vault: ");
|
|
49
|
+
console.log(res);
|
|
62
50
|
return [2 /*return*/];
|
|
63
51
|
}
|
|
64
52
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,81 @@
|
|
|
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
|
+
var getClaimTx_1 = require("../utils/coveredCall/getClaimTx");
|
|
40
|
+
var getClaimAllTx_1 = require("../utils/coveredCall/getClaimAllTx");
|
|
41
|
+
var constants_1 = require("../constants");
|
|
42
|
+
var sui_js_1 = require("@mysten/sui.js");
|
|
43
|
+
var getTypeArgumentFromToken_1 = require("../utils/getTypeArgumentFromToken");
|
|
44
|
+
var provider = new sui_js_1.JsonRpcProvider(sui_js_1.Network.DEVNET); //for read only operations
|
|
45
|
+
var keypair = sui_js_1.Ed25519Keypair.deriveKeypair(constants_1.TEST_MNEMONIC);
|
|
46
|
+
var signer = new sui_js_1.RawSigner(keypair, provider);
|
|
47
|
+
/*
|
|
48
|
+
after claim,
|
|
49
|
+
*/
|
|
50
|
+
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
51
|
+
var claimAmount, isRolling, token, vaultIndex, typeArgument, claimTx, claimAllTx;
|
|
52
|
+
return __generator(this, function (_a) {
|
|
53
|
+
switch (_a.label) {
|
|
54
|
+
case 0:
|
|
55
|
+
claimAmount = 13;
|
|
56
|
+
isRolling = true;
|
|
57
|
+
token = "0x8f306b0fcbcbdee0b3a5e694c06039dfe8ca7f14" // minted token
|
|
58
|
+
;
|
|
59
|
+
vaultIndex = 59;
|
|
60
|
+
return [4 /*yield*/, (0, getTypeArgumentFromToken_1.getTypeArgumentFromToken)(token)];
|
|
61
|
+
case 1:
|
|
62
|
+
typeArgument = _a.sent();
|
|
63
|
+
console.log("test for claim, try to claim " + token + " for " + claimAmount + " ...");
|
|
64
|
+
return [4 /*yield*/, (0, getClaimTx_1.getClaimTx)(constants_1.COVERED_CALL_PACKAGE, constants_1.COVERED_CALL_REGISTRY, typeArgument, vaultIndex, claimAmount, isRolling)];
|
|
65
|
+
case 2:
|
|
66
|
+
claimTx = _a.sent();
|
|
67
|
+
return [4 /*yield*/, signer.executeMoveCall(claimTx)];
|
|
68
|
+
case 3:
|
|
69
|
+
_a.sent();
|
|
70
|
+
console.log("claim successfully");
|
|
71
|
+
return [4 /*yield*/, (0, getClaimAllTx_1.getClaimAllTx)(constants_1.COVERED_CALL_PACKAGE, constants_1.COVERED_CALL_REGISTRY, typeArgument, vaultIndex, isRolling)];
|
|
72
|
+
case 4:
|
|
73
|
+
claimAllTx = _a.sent();
|
|
74
|
+
return [4 /*yield*/, signer.executeMoveCall(claimAllTx)];
|
|
75
|
+
case 5:
|
|
76
|
+
_a.sent();
|
|
77
|
+
console.log("claim all successfully");
|
|
78
|
+
return [2 /*return*/];
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}); })();
|
package/lib/test/testDeposit.js
CHANGED
|
@@ -53,9 +53,9 @@ var signer = new sui_js_1.RawSigner(keypair, provider);
|
|
|
53
53
|
return __generator(this, function (_a) {
|
|
54
54
|
switch (_a.label) {
|
|
55
55
|
case 0:
|
|
56
|
-
depositAmount =
|
|
56
|
+
depositAmount = 100000000;
|
|
57
57
|
isRolling = true;
|
|
58
|
-
token = "
|
|
58
|
+
token = "0x07f6ef13aa444a793b11675494a8c7fb3b1acab7" // minted token
|
|
59
59
|
;
|
|
60
60
|
vaultIndex = 0;
|
|
61
61
|
return [4 /*yield*/, (0, getTypeArgumentFromToken_1.getTypeArgumentFromToken)(token)];
|
package/lib/test/testMint.js
CHANGED
|
@@ -42,7 +42,7 @@ var sui_js_1 = require("@mysten/sui.js");
|
|
|
42
42
|
var provider = new sui_js_1.JsonRpcProvider(sui_js_1.Network.DEVNET); //for read only operations
|
|
43
43
|
var keypair = sui_js_1.Ed25519Keypair.deriveKeypair(constants_1.TEST_MNEMONIC);
|
|
44
44
|
var signer = new sui_js_1.RawSigner(keypair, provider);
|
|
45
|
-
var mintAmount =
|
|
45
|
+
var mintAmount = 1000500000;
|
|
46
46
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
47
47
|
var tokenRegistry, moduleName, mintTx, moveCallTxn;
|
|
48
48
|
return __generator(this, function (_a) {
|
|
@@ -76,6 +76,10 @@ function prepareData(tokenRegistry) {
|
|
|
76
76
|
return [4 /*yield*/, provider.getObject(tokenRegistry)];
|
|
77
77
|
case 1:
|
|
78
78
|
obj = _a.sent();
|
|
79
|
+
if (obj.status != "Exists") {
|
|
80
|
+
console.log("obj not exists");
|
|
81
|
+
return [2 /*return*/];
|
|
82
|
+
}
|
|
79
83
|
type_1 = obj.details.data.fields.treasury_cap.fields.total_supply.type;
|
|
80
84
|
console.log("type arugment : " + type_1);
|
|
81
85
|
tokenName = constants_1.TOKEN_NAME.find(function (e) { return type_1.includes(e); });
|
package/lib/test/testNewVault.js
CHANGED
|
@@ -35,6 +35,22 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
35
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
36
|
}
|
|
37
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
|
+
};
|
|
38
54
|
var __values = (this && this.__values) || function(o) {
|
|
39
55
|
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
40
56
|
if (m) return m.call(o);
|
|
@@ -47,88 +63,46 @@ var __values = (this && this.__values) || function(o) {
|
|
|
47
63
|
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
48
64
|
};
|
|
49
65
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
-
var getNewOracleTx_1 = require("../utils/getNewOracleTx");
|
|
51
|
-
var getUpdateOracleTx_1 = require("../utils/getUpdateOracleTx");
|
|
52
66
|
var getNewCoveredCallVaultTx_1 = require("../utils/coveredCall/getNewCoveredCallVaultTx");
|
|
67
|
+
var createTimeOracle_1 = require("../utils/coveredCall/createTimeOracle");
|
|
53
68
|
var constants_1 = require("../constants");
|
|
54
69
|
var sui_js_1 = require("@mysten/sui.js");
|
|
55
70
|
var getTypeArgumentFromToken_1 = require("../utils/getTypeArgumentFromToken");
|
|
56
71
|
var provider = new sui_js_1.JsonRpcProvider(sui_js_1.Network.DEVNET); //for read only operations
|
|
57
72
|
var keypair = sui_js_1.Ed25519Keypair.deriveKeypair(constants_1.TEST_MNEMONIC);
|
|
58
73
|
var signer = new sui_js_1.RawSigner(keypair, provider);
|
|
59
|
-
var token = "
|
|
60
|
-
var decimal = 8;
|
|
74
|
+
var token = "0x07f6ef13aa444a793b11675494a8c7fb3b1acab7"; // minted token
|
|
61
75
|
var expiration = 1;
|
|
62
76
|
var strike = 105;
|
|
63
|
-
var
|
|
64
|
-
var
|
|
77
|
+
var tokenDecimal = 9;
|
|
78
|
+
var shareDecimal = 4;
|
|
79
|
+
var period = 1; //weekly
|
|
80
|
+
var start = 1671782400000; // 2022/12/23 Friday 08:00:00
|
|
65
81
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
66
|
-
var typeArgument, newCoveredCallVaultTx, moveCallTxn;
|
|
67
|
-
return __generator(this, function (
|
|
68
|
-
switch (
|
|
82
|
+
var typeArgument, _a, timeOracle, _, newCoveredCallVaultTx, moveCallTxn;
|
|
83
|
+
return __generator(this, function (_b) {
|
|
84
|
+
switch (_b.label) {
|
|
69
85
|
case 0: return [4 /*yield*/, (0, getTypeArgumentFromToken_1.getTypeArgumentFromToken)(token)
|
|
70
86
|
// let priceOracle: string = await createAndUpdatePriceOracle(typeArgument)
|
|
71
87
|
];
|
|
72
88
|
case 1:
|
|
73
|
-
typeArgument =
|
|
74
|
-
return [4 /*yield*/, (0,
|
|
89
|
+
typeArgument = _b.sent();
|
|
90
|
+
return [4 /*yield*/, (0, createTimeOracle_1.createTimeOracle)()];
|
|
75
91
|
case 2:
|
|
76
|
-
|
|
77
|
-
return [4 /*yield*/,
|
|
92
|
+
_a = __read.apply(void 0, [_b.sent(), 2]), timeOracle = _a[0], _ = _a[1];
|
|
93
|
+
return [4 /*yield*/, (0, getNewCoveredCallVaultTx_1.getNewCoveredCallVaultTx)(constants_1.COVERED_CALL_PACKAGE, constants_1.COVERED_CALL_REGISTRY, typeArgument, constants_1.COVERED_CALL_MANAGER, tokenDecimal, shareDecimal, timeOracle, period, start, expiration, strike)];
|
|
78
94
|
case 3:
|
|
79
|
-
|
|
80
|
-
return [4 /*yield*/,
|
|
95
|
+
newCoveredCallVaultTx = _b.sent();
|
|
96
|
+
return [4 /*yield*/, signer.executeMoveCall(newCoveredCallVaultTx)];
|
|
81
97
|
case 4:
|
|
82
|
-
|
|
98
|
+
moveCallTxn = _b.sent();
|
|
99
|
+
return [4 /*yield*/, checkData(moveCallTxn)];
|
|
100
|
+
case 5:
|
|
101
|
+
_b.sent();
|
|
83
102
|
return [2 /*return*/];
|
|
84
103
|
}
|
|
85
104
|
});
|
|
86
105
|
}); })();
|
|
87
|
-
function createAndUpdatePriceOracle(typeArgument) {
|
|
88
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
89
|
-
var newOracleTx, moveCallTxn, digest, txn, priceOracle, managerCap, updateOracleTx, newOracleObj;
|
|
90
|
-
return __generator(this, function (_a) {
|
|
91
|
-
switch (_a.label) {
|
|
92
|
-
case 0:
|
|
93
|
-
console.log("create new oracle...");
|
|
94
|
-
return [4 /*yield*/, (0, getNewOracleTx_1.getNewOracleTx)(constants_1.ORACLE_PACKAGE, typeArgument, decimal)];
|
|
95
|
-
case 1:
|
|
96
|
-
newOracleTx = _a.sent();
|
|
97
|
-
return [4 /*yield*/, signer.executeMoveCall(newOracleTx)];
|
|
98
|
-
case 2:
|
|
99
|
-
moveCallTxn = _a.sent();
|
|
100
|
-
digest = moveCallTxn.EffectsCert.certificate.transactionDigest;
|
|
101
|
-
return [4 /*yield*/, provider.getTransactionWithEffects(digest)];
|
|
102
|
-
case 3:
|
|
103
|
-
txn = _a.sent();
|
|
104
|
-
if (txn.effects.created[0].owner["AddressOwner"] == undefined) {
|
|
105
|
-
priceOracle = txn.effects.created[0].reference.objectId;
|
|
106
|
-
managerCap = txn.effects.created[1].reference.objectId;
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
priceOracle = txn.effects.created[1].reference.objectId;
|
|
110
|
-
managerCap = txn.effects.created[0].reference.objectId;
|
|
111
|
-
}
|
|
112
|
-
console.log("priceOracle: " + priceOracle);
|
|
113
|
-
console.log("managerCap of priceOracle: " + managerCap);
|
|
114
|
-
console.log("update oracle...");
|
|
115
|
-
return [4 /*yield*/, (0, getUpdateOracleTx_1.getUpdateOracleTx)(constants_1.ORACLE_PACKAGE, typeArgument, priceOracle, managerCap, price, unix)];
|
|
116
|
-
case 4:
|
|
117
|
-
updateOracleTx = _a.sent();
|
|
118
|
-
return [4 /*yield*/, signer.executeMoveCall(updateOracleTx)];
|
|
119
|
-
case 5:
|
|
120
|
-
_a.sent();
|
|
121
|
-
return [4 /*yield*/, provider.getObject(priceOracle)];
|
|
122
|
-
case 6:
|
|
123
|
-
newOracleObj = _a.sent();
|
|
124
|
-
console.log("updated oracle data:");
|
|
125
|
-
//@ts-ignore
|
|
126
|
-
console.log(newOracleObj.details.data.fields);
|
|
127
|
-
return [2 /*return*/, priceOracle];
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
106
|
function checkData(moveCallTxn) {
|
|
133
107
|
return __awaiter(this, void 0, void 0, function () {
|
|
134
108
|
var txn, _a, _b, obj, e_1;
|
package/lib/test/testOracle.js
CHANGED
|
@@ -80,6 +80,10 @@ var signer = new sui_js_1.RawSigner(keypair, provider);
|
|
|
80
80
|
return [4 /*yield*/, provider.getObject(newOracle)];
|
|
81
81
|
case 6:
|
|
82
82
|
newOracleObj = _a.sent();
|
|
83
|
+
if (newOracleObj.status != "Exists") {
|
|
84
|
+
console.log("obj not exists");
|
|
85
|
+
return [2 /*return*/];
|
|
86
|
+
}
|
|
83
87
|
console.log("updated oracle:");
|
|
84
88
|
//@ts-ignore
|
|
85
89
|
console.log(newOracleObj.details.data.fields);
|