@typus/typus-sdk 0.1.3 → 0.1.4
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 +9 -9
- package/lib/constants.js +15 -11
- package/lib/scripts/coveredCall/{getCoveredCallDepositTx.d.ts → getDeliveryTx.d.ts} +0 -0
- package/lib/scripts/coveredCall/{getCoveredCallUnsubscribeTx.js → getDeliveryTx.js} +6 -6
- package/lib/scripts/{getDepositTx.d.ts → coveredCall/getDepositTx.d.ts} +0 -0
- package/lib/scripts/{getDepositTx.js → coveredCall/getDepositTx.js} +7 -8
- package/lib/scripts/coveredCall/{getCoveredCallUnsubscribeTx.d.ts → getNewAuctionTx.d.ts} +0 -0
- package/lib/scripts/{getNewSharkFinVaultTx.js → coveredCall/getNewAuctionTx.js} +13 -11
- package/lib/scripts/{getNewSharkFinVaultTx.d.ts → coveredCall/getNewAuctionWithNextCoveredCallVaultTx.d.ts} +0 -0
- package/lib/scripts/coveredCall/getNewAuctionWithNextCoveredCallVaultTx.js +65 -0
- package/lib/scripts/coveredCall/getNewBidTx.d.ts +1 -0
- package/lib/scripts/coveredCall/getNewBidTx.js +59 -0
- package/lib/scripts/coveredCall/getNewCoveredCallVaultTx.js +4 -2
- package/lib/scripts/coveredCall/getRemoveBidTx.d.ts +1 -0
- package/lib/scripts/coveredCall/getRemoveBidTx.js +56 -0
- package/lib/scripts/coveredCall/getSubscribeTx.d.ts +1 -0
- package/lib/scripts/coveredCall/getSubscribeTx.js +55 -0
- package/lib/scripts/coveredCall/getUnsubscribeTx.d.ts +1 -0
- package/lib/scripts/coveredCall/getUnsubscribeTx.js +55 -0
- package/lib/scripts/coveredCall/getWithdrawTx.d.ts +1 -0
- package/lib/scripts/coveredCall/{getCoveredCallDepositTx.js → getWithdrawTx.js} +6 -7
- package/lib/scripts/getNewOracleTx.js +3 -3
- package/lib/scripts/getUpdateOracleTx.js +1 -1
- package/lib/test/testCrypto.d.ts +1 -0
- package/lib/test/testCrypto.js +54 -0
- package/lib/test/testDeposit.js +16 -43
- package/lib/test/testDepositV2.d.ts +0 -1
- package/lib/test/testDepositV2.js +61 -168
- package/lib/test/testMint.js +70 -30
- package/lib/test/testNewVault.d.ts +1 -0
- package/lib/test/testNewVault.js +171 -0
- package/lib/test/testOracle.js +4 -3
- package/lib/test/testSubscribeEvent.d.ts +1 -0
- package/lib/test/testSubscribeEvent.js +97 -0
- package/lib/test/testUnsubscribe.d.ts +1 -0
- package/lib/test/testUnsubscribe.js +86 -0
- package/lib/utils/auction/sealedAuction.d.ts +33 -0
- package/lib/utils/auction/sealedAuction.js +64 -0
- package/lib/utils/coveredCall/getDeliveryTx.d.ts +1 -0
- package/lib/utils/coveredCall/{getCoveredCallDepositTx.js → getDeliveryTx.js} +5 -10
- package/lib/utils/{getDepositTx.d.ts → coveredCall/getDepositTx.d.ts} +0 -0
- package/lib/utils/{getDepositTx.js → coveredCall/getDepositTx.js} +3 -3
- package/lib/utils/coveredCall/getNewAuctionTx.d.ts +1 -0
- package/lib/utils/{getNewSharkFinVaultTx.js → coveredCall/getNewAuctionTx.js} +15 -13
- package/lib/utils/coveredCall/getNewAuctionWithNextCoveredCallVaultTx.d.ts +1 -0
- package/lib/utils/coveredCall/getNewAuctionWithNextCoveredCallVaultTx.js +69 -0
- package/lib/utils/coveredCall/getNewBidTx.d.ts +1 -0
- package/lib/utils/coveredCall/getNewBidTx.js +62 -0
- package/lib/utils/coveredCall/getNewCoveredCallVaultTx.d.ts +1 -1
- package/lib/utils/coveredCall/getNewCoveredCallVaultTx.js +3 -2
- package/lib/utils/coveredCall/getRemoveBidTx.d.ts +1 -0
- package/lib/utils/coveredCall/getRemoveBidTx.js +60 -0
- package/lib/utils/coveredCall/getSubscribeTx.d.ts +1 -0
- package/lib/utils/coveredCall/getSubscribeTx.js +59 -0
- package/lib/utils/coveredCall/getUnsubscribeTx.d.ts +1 -0
- package/lib/utils/coveredCall/{getCoveredCallUnsubscribeTx.js → getUnsubscribeTx.js} +3 -3
- package/lib/utils/coveredCall/getWithdrawTx.d.ts +1 -0
- package/lib/utils/coveredCall/getWithdrawTx.js +61 -0
- package/lib/utils/getNewOracleTx.d.ts +1 -1
- package/lib/utils/getNewOracleTx.js +2 -2
- package/lib/utils/getSubVault.js +1 -1
- package/lib/utils/getTypeArgumentFromToken.d.ts +1 -0
- package/lib/utils/getTypeArgumentFromToken.js +67 -0
- package/package.json +6 -2
- package/lib/utils/coveredCall/getCoveredCallDepositTx.d.ts +0 -1
- package/lib/utils/coveredCall/getCoveredCallUnsubscribeTx.d.ts +0 -1
- package/lib/utils/getNewSharkFinVaultTx.d.ts +0 -1
package/lib/test/testDeposit.js
CHANGED
|
@@ -36,66 +36,39 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
var
|
|
40
|
-
var getDepositTx_1 = require("../utils/getDepositTx");
|
|
39
|
+
var getDepositTx_1 = require("../utils/coveredCall/getDepositTx");
|
|
41
40
|
var constants_1 = require("../constants");
|
|
42
41
|
var sui_js_1 = require("@mysten/sui.js");
|
|
42
|
+
var getTypeArgumentFromToken_1 = require("../utils/getTypeArgumentFromToken");
|
|
43
43
|
var provider = new sui_js_1.JsonRpcProvider(sui_js_1.Network.DEVNET); //for read only operations
|
|
44
44
|
var keypair = sui_js_1.Ed25519Keypair.deriveKeypair(constants_1.TEST_MNEMONIC);
|
|
45
45
|
var signer = new sui_js_1.RawSigner(keypair, provider);
|
|
46
46
|
/*
|
|
47
|
-
after deposit, token object balance will decrease,
|
|
47
|
+
after deposit, token object (minted token) balance will decrease,
|
|
48
|
+
and subVault "balance" in fields will increase,
|
|
49
|
+
and a new rolling linked list node will be created if not exist, and the value will increase the same value
|
|
48
50
|
*/
|
|
49
51
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
50
|
-
var depositAmount,
|
|
52
|
+
var depositAmount, isRolling, token, vaultIndex, typeArgument, depositTx;
|
|
51
53
|
return __generator(this, function (_a) {
|
|
52
54
|
switch (_a.label) {
|
|
53
55
|
case 0:
|
|
54
56
|
depositAmount = 123;
|
|
55
|
-
typeArgument = "0x27b3674c685046f66cad1d5496d2967894fa5329::token::USDC" //0x27b3674c685046f66cad1d5496d2967894fa5329:TOKEN_PACKAGE
|
|
56
|
-
;
|
|
57
|
-
expiration = 1671344789;
|
|
58
|
-
bullish = true;
|
|
59
|
-
lowBarrierPrice = 1;
|
|
60
|
-
highBarrierPrice = 10;
|
|
61
57
|
isRolling = true;
|
|
62
|
-
token = "
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
];
|
|
58
|
+
token = "0xaa8f8ccf372b461e5b8778b250bf13d9b1013174" // minted token
|
|
59
|
+
;
|
|
60
|
+
vaultIndex = 3;
|
|
61
|
+
return [4 /*yield*/, (0, getTypeArgumentFromToken_1.getTypeArgumentFromToken)(token)];
|
|
67
62
|
case 1:
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
return [4 /*yield*/, (0, getNewSharkFinVaultTx_1.getNewSharkFinVaultTx)(constants_1.SHARKFIN_PACKAGE, constants_1.SHARKFIN_REGISTRY, typeArgument, expiration, bullish, lowBarrierPrice, highBarrierPrice)];
|
|
63
|
+
typeArgument = _a.sent();
|
|
64
|
+
console.log("test for deposit, try to deposit " + token + " for " + depositAmount + " ...");
|
|
65
|
+
return [4 /*yield*/, (0, getDepositTx_1.getDepositTx)(constants_1.COVERED_CALL_PACKAGE, constants_1.COVERED_CALL_REGISTRY, typeArgument, vaultIndex, isRolling, token, depositAmount)];
|
|
72
66
|
case 2:
|
|
73
|
-
newSharkFinVaultTx = _a.sent();
|
|
74
|
-
return [4 /*yield*/, signer.executeMoveCall(newSharkFinVaultTx)];
|
|
75
|
-
case 3:
|
|
76
|
-
moveCallTxn = _a.sent();
|
|
77
|
-
return [4 /*yield*/, provider.getTransactionWithEffects(
|
|
78
|
-
//@ts-ignore
|
|
79
|
-
moveCallTxn.EffectsCert.certificate.transactionDigest)];
|
|
80
|
-
case 4:
|
|
81
|
-
txn = _a.sent();
|
|
82
|
-
newVault = txn.effects.created[0].reference.objectId;
|
|
83
|
-
console.log("create new vault " + newVault + " for token successfully");
|
|
84
|
-
return [4 /*yield*/, provider.getObject(constants_1.SHARKFIN_REGISTRY)
|
|
85
|
-
//@ts-ignore
|
|
86
|
-
];
|
|
87
|
-
case 5:
|
|
88
|
-
registry = _a.sent();
|
|
89
|
-
numOfVaultAfterCreateVault = registry.details.data.fields.num_of_vault;
|
|
90
|
-
console.log("numOfVaultAfterCreateVault: " + numOfVaultAfterCreateVault);
|
|
91
|
-
vaultIndex = numOfVaultAfterCreateVault - 1;
|
|
92
|
-
return [4 /*yield*/, (0, getDepositTx_1.getDepositTx)(constants_1.SHARKFIN_PACKAGE, constants_1.SHARKFIN_REGISTRY, typeArgument, vaultIndex, isRolling, token, depositAmount)];
|
|
93
|
-
case 6:
|
|
94
67
|
depositTx = _a.sent();
|
|
95
68
|
return [4 /*yield*/, signer.executeMoveCall(depositTx)];
|
|
96
|
-
case
|
|
97
|
-
|
|
98
|
-
console.log("deposit to
|
|
69
|
+
case 3:
|
|
70
|
+
_a.sent();
|
|
71
|
+
console.log("deposit to vault successfully");
|
|
99
72
|
return [2 /*return*/];
|
|
100
73
|
}
|
|
101
74
|
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,169 +1,62 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
var constants_1 = require("../constants");
|
|
64
|
-
var sui_js_1 = require("@mysten/sui.js");
|
|
65
|
-
var assert = __importStar(require("assert"));
|
|
66
|
-
var provider = new sui_js_1.JsonRpcProvider(sui_js_1.Network.DEVNET); //for read only operations
|
|
67
|
-
var keypair = sui_js_1.Ed25519Keypair.deriveKeypair(constants_1.TEST_MNEMONIC);
|
|
68
|
-
var signer = new sui_js_1.RawSigner(keypair, provider);
|
|
69
|
-
/*
|
|
70
|
-
after deposit, token object balance will decrease, and new vault "deposit" in fields will increase
|
|
71
|
-
*/
|
|
72
|
-
describe('deposit', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
73
|
-
var depositAmount, typeArgument, expiration, bullish, lowBarrierPrice, highBarrierPrice, isRolling, token;
|
|
74
|
-
return __generator(this, function (_a) {
|
|
75
|
-
depositAmount = 123;
|
|
76
|
-
typeArgument = "0x27b3674c685046f66cad1d5496d2967894fa5329::token::USDC" //0x27b3674c685046f66cad1d5496d2967894fa5329:TOKEN_PACKAGE
|
|
77
|
-
;
|
|
78
|
-
expiration = 1671344789;
|
|
79
|
-
bullish = true;
|
|
80
|
-
lowBarrierPrice = 1;
|
|
81
|
-
highBarrierPrice = 10;
|
|
82
|
-
isRolling = true;
|
|
83
|
-
token = "0xdb85a3efc1706010fa9530ef3b8a8a5cf4b290b7";
|
|
84
|
-
console.log("test for deposit, try to deposit " + token + " for " + depositAmount + " ...");
|
|
85
|
-
it('Check registry', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
86
|
-
var e_1;
|
|
87
|
-
return __generator(this, function (_a) {
|
|
88
|
-
switch (_a.label) {
|
|
89
|
-
case 0:
|
|
90
|
-
_a.trys.push([0, 2, , 3]);
|
|
91
|
-
return [4 /*yield*/, provider.getObject(constants_1.SHARKFIN_REGISTRY)];
|
|
92
|
-
case 1:
|
|
93
|
-
_a.sent();
|
|
94
|
-
assert.ok("Get registry successfully");
|
|
95
|
-
return [3 /*break*/, 3];
|
|
96
|
-
case 2:
|
|
97
|
-
e_1 = _a.sent();
|
|
98
|
-
assert.fail("Wrong registry");
|
|
99
|
-
return [3 /*break*/, 3];
|
|
100
|
-
case 3: return [2 /*return*/];
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
}); });
|
|
104
|
-
it('Create new vault in registry', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
105
|
-
var newSharkFinVaultTx, moveCallTxn, e_2;
|
|
106
|
-
return __generator(this, function (_a) {
|
|
107
|
-
switch (_a.label) {
|
|
108
|
-
case 0:
|
|
109
|
-
_a.trys.push([0, 3, , 4]);
|
|
110
|
-
return [4 /*yield*/, (0, getNewSharkFinVaultTx_1.getNewSharkFinVaultTx)(constants_1.SHARKFIN_PACKAGE, constants_1.SHARKFIN_REGISTRY, typeArgument, expiration, bullish, lowBarrierPrice, highBarrierPrice)];
|
|
111
|
-
case 1:
|
|
112
|
-
newSharkFinVaultTx = _a.sent();
|
|
113
|
-
return [4 /*yield*/, signer.executeMoveCall(newSharkFinVaultTx)];
|
|
114
|
-
case 2:
|
|
115
|
-
moveCallTxn = _a.sent();
|
|
116
|
-
console.log(moveCallTxn);
|
|
117
|
-
assert.ok("Create new vault in registry successfully");
|
|
118
|
-
return [3 /*break*/, 4];
|
|
119
|
-
case 3:
|
|
120
|
-
e_2 = _a.sent();
|
|
121
|
-
assert.fail("Can't create new vault in registry");
|
|
122
|
-
return [3 /*break*/, 4];
|
|
123
|
-
case 4: return [2 /*return*/];
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
|
-
}); });
|
|
127
|
-
it('Check vault number after create new vault', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
128
|
-
var registry, numOfVaultBeforeCreateVault, newSharkFinVaultTx, numOfVaultAfterCreateVault, e_3;
|
|
129
|
-
return __generator(this, function (_a) {
|
|
130
|
-
switch (_a.label) {
|
|
131
|
-
case 0:
|
|
132
|
-
_a.trys.push([0, 5, , 6]);
|
|
133
|
-
return [4 /*yield*/, provider.getObject(constants_1.SHARKFIN_REGISTRY)
|
|
134
|
-
//@ts-ignore
|
|
135
|
-
];
|
|
136
|
-
case 1:
|
|
137
|
-
registry = _a.sent();
|
|
138
|
-
numOfVaultBeforeCreateVault = registry.details.data.fields.num_of_vault;
|
|
139
|
-
return [4 /*yield*/, (0, getNewSharkFinVaultTx_1.getNewSharkFinVaultTx)(constants_1.SHARKFIN_PACKAGE, constants_1.SHARKFIN_REGISTRY, typeArgument, expiration, bullish, lowBarrierPrice, highBarrierPrice)];
|
|
140
|
-
case 2:
|
|
141
|
-
newSharkFinVaultTx = _a.sent();
|
|
142
|
-
return [4 /*yield*/, signer.executeMoveCall(newSharkFinVaultTx)];
|
|
143
|
-
case 3:
|
|
144
|
-
_a.sent();
|
|
145
|
-
return [4 /*yield*/, provider.getObject(constants_1.SHARKFIN_REGISTRY)
|
|
146
|
-
//@ts-ignore
|
|
147
|
-
];
|
|
148
|
-
case 4:
|
|
149
|
-
registry = _a.sent();
|
|
150
|
-
numOfVaultAfterCreateVault = registry.details.data.fields.num_of_vault;
|
|
151
|
-
// console.log("numOfVaultAfterCreateVault: " + numOfVaultAfterCreateVault)
|
|
152
|
-
assert.ok(numOfVaultAfterCreateVault == numOfVaultBeforeCreateVault + 1, "wrong vault number");
|
|
153
|
-
return [3 /*break*/, 6];
|
|
154
|
-
case 5:
|
|
155
|
-
e_3 = _a.sent();
|
|
156
|
-
assert.fail("Error in check vault number after create new vault");
|
|
157
|
-
return [3 /*break*/, 6];
|
|
158
|
-
case 6: return [2 /*return*/];
|
|
159
|
-
}
|
|
160
|
-
});
|
|
161
|
-
}); });
|
|
162
|
-
it('Deposit to new vault', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
163
|
-
return __generator(this, function (_a) {
|
|
164
|
-
return [2 /*return*/];
|
|
165
|
-
});
|
|
166
|
-
}); });
|
|
167
|
-
return [2 /*return*/];
|
|
168
|
-
});
|
|
169
|
-
}); });
|
|
2
|
+
// import { getNewSharkFinVaultTx } from "../utils/getNewSharkFinVaultTx"
|
|
3
|
+
// import { getDepositTx } from "../utils/coveredCall/getDepositTx"
|
|
4
|
+
// import { SHARKFIN_PACKAGE, SHARKFIN_REGISTRY, TEST_MNEMONIC, TOKEN_REGISTRY } from "../constants"
|
|
5
|
+
// import { JsonRpcProvider, Ed25519Keypair, RawSigner, Network } from '@mysten/sui.js';
|
|
6
|
+
// import { expect } from 'chai';
|
|
7
|
+
// import * as assert from "assert";
|
|
8
|
+
// const provider = new JsonRpcProvider(Network.DEVNET);//for read only operations
|
|
9
|
+
// const keypair = Ed25519Keypair.deriveKeypair(TEST_MNEMONIC);
|
|
10
|
+
// const signer = new RawSigner(keypair, provider);
|
|
11
|
+
// /*
|
|
12
|
+
// after deposit, token object balance will decrease, and new vault "deposit" in fields will increase
|
|
13
|
+
// */
|
|
14
|
+
// describe('deposit', async () => {
|
|
15
|
+
// //init
|
|
16
|
+
// let depositAmount = 123;
|
|
17
|
+
// let typeArgument = "0x27b3674c685046f66cad1d5496d2967894fa5329::token::USDC" //0x27b3674c685046f66cad1d5496d2967894fa5329:TOKEN_PACKAGE
|
|
18
|
+
// let expiration = 1671344789
|
|
19
|
+
// let bullish = true
|
|
20
|
+
// let lowBarrierPrice = 1
|
|
21
|
+
// let highBarrierPrice = 10
|
|
22
|
+
// let isRolling = true;
|
|
23
|
+
// let token = "0xdb85a3efc1706010fa9530ef3b8a8a5cf4b290b7"
|
|
24
|
+
// console.log("test for deposit, try to deposit " + token + " for " + depositAmount + " ...")
|
|
25
|
+
// it('Check registry', async () => {
|
|
26
|
+
// try {
|
|
27
|
+
// await provider.getObject(SHARKFIN_REGISTRY)
|
|
28
|
+
// assert.ok("Get registry successfully");
|
|
29
|
+
// } catch (e) {
|
|
30
|
+
// assert.fail("Wrong registry")
|
|
31
|
+
// }
|
|
32
|
+
// })
|
|
33
|
+
// it('Create new vault in registry', async () => {
|
|
34
|
+
// try {
|
|
35
|
+
// let newSharkFinVaultTx: any = await getNewSharkFinVaultTx(SHARKFIN_PACKAGE, SHARKFIN_REGISTRY, typeArgument, expiration, bullish, lowBarrierPrice, highBarrierPrice);
|
|
36
|
+
// let moveCallTxn = await signer.executeMoveCall(newSharkFinVaultTx);
|
|
37
|
+
// console.log(moveCallTxn)
|
|
38
|
+
// assert.ok("Create new vault in registry successfully");
|
|
39
|
+
// } catch (e) {
|
|
40
|
+
// assert.fail("Can't create new vault in registry")
|
|
41
|
+
// }
|
|
42
|
+
// })
|
|
43
|
+
// it('Check vault number after create new vault', async () => {
|
|
44
|
+
// try {
|
|
45
|
+
// let registry = await provider.getObject(SHARKFIN_REGISTRY)
|
|
46
|
+
// //@ts-ignore
|
|
47
|
+
// let numOfVaultBeforeCreateVault = registry.details.data.fields.num_of_vault
|
|
48
|
+
// // console.log("numOfVaultBeforeCreateVault: " + numOfVaultBeforeCreateVault)
|
|
49
|
+
// let newSharkFinVaultTx: any = await getNewSharkFinVaultTx(SHARKFIN_PACKAGE, SHARKFIN_REGISTRY, typeArgument, expiration, bullish, lowBarrierPrice, highBarrierPrice);
|
|
50
|
+
// await signer.executeMoveCall(newSharkFinVaultTx);
|
|
51
|
+
// registry = await provider.getObject(SHARKFIN_REGISTRY)
|
|
52
|
+
// //@ts-ignore
|
|
53
|
+
// let numOfVaultAfterCreateVault = registry.details.data.fields.num_of_vault
|
|
54
|
+
// // console.log("numOfVaultAfterCreateVault: " + numOfVaultAfterCreateVault)
|
|
55
|
+
// assert.ok(numOfVaultAfterCreateVault == numOfVaultBeforeCreateVault + 1, "wrong vault number");
|
|
56
|
+
// } catch (e) {
|
|
57
|
+
// assert.fail("Error in check vault number after create new vault")
|
|
58
|
+
// }
|
|
59
|
+
// })
|
|
60
|
+
// it('Deposit to new vault', async () => {
|
|
61
|
+
// })
|
|
62
|
+
// })
|
package/lib/test/testMint.js
CHANGED
|
@@ -44,47 +44,87 @@ var keypair = sui_js_1.Ed25519Keypair.deriveKeypair(constants_1.TEST_MNEMONIC);
|
|
|
44
44
|
var signer = new sui_js_1.RawSigner(keypair, provider);
|
|
45
45
|
var mintAmount = 10005;
|
|
46
46
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
47
|
-
var
|
|
47
|
+
var moudleName, mintTx, moveCallTxn;
|
|
48
48
|
return __generator(this, function (_a) {
|
|
49
49
|
switch (_a.label) {
|
|
50
|
-
case 0:
|
|
51
|
-
console.log("test for mint, try to mint " + mintAmount + " ...");
|
|
52
|
-
return [4 /*yield*/, provider.getObject(constants_1.TOKEN_REGISTRY)];
|
|
50
|
+
case 0: return [4 /*yield*/, prepareData()];
|
|
53
51
|
case 1:
|
|
54
|
-
|
|
55
|
-
type = obj.details.data.fields.supply.type;
|
|
56
|
-
tokenName = constants_1.TOKEN_NAME.find(function (e) { return type.includes(e); });
|
|
57
|
-
if (!tokenName) {
|
|
58
|
-
console.log("can't find token in type: " + type);
|
|
59
|
-
return [2 /*return*/];
|
|
60
|
-
}
|
|
61
|
-
moudleName = constants_1.TOKEN_NAME_TO_MODULE[tokenName];
|
|
62
|
-
//@ts-ignore
|
|
63
|
-
console.log("Before: total mint fake " + tokenName + " token in the registry: " + obj.details.data.fields.supply.fields.value);
|
|
52
|
+
moudleName = _a.sent();
|
|
64
53
|
return [4 /*yield*/, (0, getMintTx_1.getMintTx)(constants_1.TOKEN_PACKAGE, constants_1.TOKEN_REGISTRY, moudleName, mintAmount)];
|
|
65
54
|
case 2:
|
|
66
55
|
mintTx = _a.sent();
|
|
67
56
|
return [4 /*yield*/, signer.executeMoveCall(mintTx)];
|
|
68
57
|
case 3:
|
|
69
58
|
moveCallTxn = _a.sent();
|
|
70
|
-
|
|
71
|
-
return [4 /*yield*/, provider.getTransactionWithEffects(digest)];
|
|
59
|
+
return [4 /*yield*/, checkData(moveCallTxn)];
|
|
72
60
|
case 4:
|
|
73
|
-
|
|
74
|
-
tokenObjectId = txn.effects.created[0].reference.objectId;
|
|
75
|
-
return [4 /*yield*/, provider.getObject(tokenObjectId)
|
|
76
|
-
//@ts-ignore
|
|
77
|
-
];
|
|
78
|
-
case 5:
|
|
79
|
-
tokenObj = _a.sent();
|
|
80
|
-
newTokenId = tokenObj.details.data.fields.id.id;
|
|
81
|
-
console.log("newTokenId: " + newTokenId);
|
|
82
|
-
return [4 /*yield*/, provider.getObject(constants_1.TOKEN_REGISTRY)];
|
|
83
|
-
case 6:
|
|
84
|
-
obj = _a.sent();
|
|
85
|
-
//@ts-ignore
|
|
86
|
-
console.log("After: total mint fake " + tokenName + " token in the registry: " + obj.details.data.fields.supply.fields.value);
|
|
61
|
+
_a.sent();
|
|
87
62
|
return [2 /*return*/];
|
|
88
63
|
}
|
|
89
64
|
});
|
|
90
65
|
}); })();
|
|
66
|
+
function prepareData() {
|
|
67
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
68
|
+
var obj, type_1, tokenName, moudleName, e_1;
|
|
69
|
+
return __generator(this, function (_a) {
|
|
70
|
+
switch (_a.label) {
|
|
71
|
+
case 0:
|
|
72
|
+
_a.trys.push([0, 2, , 3]);
|
|
73
|
+
console.log("test for mint, try to mint " + mintAmount + " ...");
|
|
74
|
+
return [4 /*yield*/, provider.getObject(constants_1.TOKEN_REGISTRY)];
|
|
75
|
+
case 1:
|
|
76
|
+
obj = _a.sent();
|
|
77
|
+
type_1 = obj.details.data.fields.treasury_cap.fields.total_supply.type;
|
|
78
|
+
console.log("type arugment : " + type_1);
|
|
79
|
+
tokenName = constants_1.TOKEN_NAME.find(function (e) { return type_1.includes(e); });
|
|
80
|
+
if (!tokenName) {
|
|
81
|
+
console.log("can't find token in type: " + type_1);
|
|
82
|
+
return [2 /*return*/];
|
|
83
|
+
}
|
|
84
|
+
moudleName = constants_1.TOKEN_NAME_TO_MODULE[tokenName];
|
|
85
|
+
//@ts-ignore
|
|
86
|
+
console.log("Before: total mint fake " + tokenName + " token in the registry: " + obj.details.data.fields.treasury_cap.fields.total_supply.fields.value);
|
|
87
|
+
return [2 /*return*/, moudleName];
|
|
88
|
+
case 2:
|
|
89
|
+
e_1 = _a.sent();
|
|
90
|
+
console.error(e_1);
|
|
91
|
+
return [3 /*break*/, 3];
|
|
92
|
+
case 3: return [2 /*return*/];
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
function checkData(moveCallTxn) {
|
|
98
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
99
|
+
var digest, txn, tokenObjectId, tokenObj, newTokenId, obj, e_2;
|
|
100
|
+
return __generator(this, function (_a) {
|
|
101
|
+
switch (_a.label) {
|
|
102
|
+
case 0:
|
|
103
|
+
_a.trys.push([0, 4, , 5]);
|
|
104
|
+
digest = moveCallTxn.EffectsCert.certificate.transactionDigest;
|
|
105
|
+
return [4 /*yield*/, provider.getTransactionWithEffects(digest)];
|
|
106
|
+
case 1:
|
|
107
|
+
txn = _a.sent();
|
|
108
|
+
tokenObjectId = txn.effects.created[0].reference.objectId;
|
|
109
|
+
return [4 /*yield*/, provider.getObject(tokenObjectId)
|
|
110
|
+
//@ts-ignore
|
|
111
|
+
];
|
|
112
|
+
case 2:
|
|
113
|
+
tokenObj = _a.sent();
|
|
114
|
+
newTokenId = tokenObj.details.data.fields.id.id;
|
|
115
|
+
console.log("newTokenId: " + newTokenId);
|
|
116
|
+
return [4 /*yield*/, provider.getObject(constants_1.TOKEN_REGISTRY)];
|
|
117
|
+
case 3:
|
|
118
|
+
obj = _a.sent();
|
|
119
|
+
//@ts-ignore
|
|
120
|
+
console.log("After: total mint in the registry: " + obj.details.data.fields.treasury_cap.fields.total_supply.fields.value);
|
|
121
|
+
return [3 /*break*/, 5];
|
|
122
|
+
case 4:
|
|
123
|
+
e_2 = _a.sent();
|
|
124
|
+
console.error(e_2);
|
|
125
|
+
return [3 /*break*/, 5];
|
|
126
|
+
case 5: return [2 /*return*/];
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,171 @@
|
|
|
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 __values = (this && this.__values) || function(o) {
|
|
39
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
40
|
+
if (m) return m.call(o);
|
|
41
|
+
if (o && typeof o.length === "number") return {
|
|
42
|
+
next: function () {
|
|
43
|
+
if (o && i >= o.length) o = void 0;
|
|
44
|
+
return { value: o && o[i++], done: !o };
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
48
|
+
};
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
var getNewOracleTx_1 = require("../utils/getNewOracleTx");
|
|
51
|
+
var getUpdateOracleTx_1 = require("../utils/getUpdateOracleTx");
|
|
52
|
+
var getNewCoveredCallVaultTx_1 = require("../utils/coveredCall/getNewCoveredCallVaultTx");
|
|
53
|
+
var constants_1 = require("../constants");
|
|
54
|
+
var sui_js_1 = require("@mysten/sui.js");
|
|
55
|
+
var getTypeArgumentFromToken_1 = require("../utils/getTypeArgumentFromToken");
|
|
56
|
+
var provider = new sui_js_1.JsonRpcProvider(sui_js_1.Network.DEVNET); //for read only operations
|
|
57
|
+
var keypair = sui_js_1.Ed25519Keypair.deriveKeypair(constants_1.TEST_MNEMONIC);
|
|
58
|
+
var signer = new sui_js_1.RawSigner(keypair, provider);
|
|
59
|
+
var token = "0xaa8f8ccf372b461e5b8778b250bf13d9b1013174"; // minted token
|
|
60
|
+
var decimal = 8;
|
|
61
|
+
var expiration = 1;
|
|
62
|
+
var assetName = "BTC"; //TODO: it will show BTC base64 string in obj fields(for example, BTC will turn into "QlRD")
|
|
63
|
+
var strike = 105;
|
|
64
|
+
var price = 98;
|
|
65
|
+
var unix = 10000000;
|
|
66
|
+
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
67
|
+
var typeArgument, priceOracle, newCoveredCallVaultTx, moveCallTxn;
|
|
68
|
+
return __generator(this, function (_a) {
|
|
69
|
+
switch (_a.label) {
|
|
70
|
+
case 0: return [4 /*yield*/, (0, getTypeArgumentFromToken_1.getTypeArgumentFromToken)(token)];
|
|
71
|
+
case 1:
|
|
72
|
+
typeArgument = _a.sent();
|
|
73
|
+
return [4 /*yield*/, createAndUpdatePriceOracle(typeArgument)];
|
|
74
|
+
case 2:
|
|
75
|
+
priceOracle = _a.sent();
|
|
76
|
+
return [4 /*yield*/, (0, getNewCoveredCallVaultTx_1.getNewCoveredCallVaultTx)(constants_1.COVERED_CALL_PACKAGE, constants_1.COVERED_CALL_REGISTRY, typeArgument, constants_1.COVERED_CALL_MANAGER, expiration, assetName, strike, priceOracle)];
|
|
77
|
+
case 3:
|
|
78
|
+
newCoveredCallVaultTx = _a.sent();
|
|
79
|
+
return [4 /*yield*/, signer.executeMoveCall(newCoveredCallVaultTx)];
|
|
80
|
+
case 4:
|
|
81
|
+
moveCallTxn = _a.sent();
|
|
82
|
+
return [4 /*yield*/, checkData(moveCallTxn)];
|
|
83
|
+
case 5:
|
|
84
|
+
_a.sent();
|
|
85
|
+
return [2 /*return*/];
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
}); })();
|
|
89
|
+
function createAndUpdatePriceOracle(typeArgument) {
|
|
90
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
91
|
+
var newOracleTx, moveCallTxn, digest, txn, priceOracle, managerCap, updateOracleTx, newOracleObj;
|
|
92
|
+
return __generator(this, function (_a) {
|
|
93
|
+
switch (_a.label) {
|
|
94
|
+
case 0:
|
|
95
|
+
console.log("create new oracle...");
|
|
96
|
+
return [4 /*yield*/, (0, getNewOracleTx_1.getNewOracleTx)(constants_1.ORACLE_PACKAGE, typeArgument, decimal)];
|
|
97
|
+
case 1:
|
|
98
|
+
newOracleTx = _a.sent();
|
|
99
|
+
return [4 /*yield*/, signer.executeMoveCall(newOracleTx)];
|
|
100
|
+
case 2:
|
|
101
|
+
moveCallTxn = _a.sent();
|
|
102
|
+
digest = moveCallTxn.EffectsCert.certificate.transactionDigest;
|
|
103
|
+
return [4 /*yield*/, provider.getTransactionWithEffects(digest)];
|
|
104
|
+
case 3:
|
|
105
|
+
txn = _a.sent();
|
|
106
|
+
if (txn.effects.created[0].owner["AddressOwner"] == undefined) {
|
|
107
|
+
priceOracle = txn.effects.created[0].reference.objectId;
|
|
108
|
+
managerCap = txn.effects.created[1].reference.objectId;
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
priceOracle = txn.effects.created[1].reference.objectId;
|
|
112
|
+
managerCap = txn.effects.created[0].reference.objectId;
|
|
113
|
+
}
|
|
114
|
+
console.log("priceOracle: " + priceOracle);
|
|
115
|
+
console.log("managerCap of priceOracle: " + managerCap);
|
|
116
|
+
console.log("update oracle...");
|
|
117
|
+
return [4 /*yield*/, (0, getUpdateOracleTx_1.getUpdateOracleTx)(constants_1.ORACLE_PACKAGE, typeArgument, priceOracle, managerCap, price, unix)];
|
|
118
|
+
case 4:
|
|
119
|
+
updateOracleTx = _a.sent();
|
|
120
|
+
return [4 /*yield*/, signer.executeMoveCall(updateOracleTx)];
|
|
121
|
+
case 5:
|
|
122
|
+
_a.sent();
|
|
123
|
+
return [4 /*yield*/, provider.getObject(priceOracle)];
|
|
124
|
+
case 6:
|
|
125
|
+
newOracleObj = _a.sent();
|
|
126
|
+
console.log("updated oracle data:");
|
|
127
|
+
//@ts-ignore
|
|
128
|
+
console.log(newOracleObj.details.data.fields);
|
|
129
|
+
return [2 /*return*/, priceOracle];
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
function checkData(moveCallTxn) {
|
|
135
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
136
|
+
var txn, _a, _b, obj, e_1;
|
|
137
|
+
var e_2, _c;
|
|
138
|
+
return __generator(this, function (_d) {
|
|
139
|
+
switch (_d.label) {
|
|
140
|
+
case 0:
|
|
141
|
+
_d.trys.push([0, 2, , 3]);
|
|
142
|
+
return [4 /*yield*/, provider.getTransactionWithEffects(
|
|
143
|
+
//@ts-ignore
|
|
144
|
+
moveCallTxn.EffectsCert.certificate.transactionDigest)];
|
|
145
|
+
case 1:
|
|
146
|
+
txn = _d.sent();
|
|
147
|
+
try {
|
|
148
|
+
for (_a = __values(txn.effects.created), _b = _a.next(); !_b.done; _b = _a.next()) {
|
|
149
|
+
obj = _b.value;
|
|
150
|
+
//@ts-ignore
|
|
151
|
+
if (obj.owner.ObjectOwner == constants_1.COVERED_CALL_REGISTRY)
|
|
152
|
+
console.log("new covered call vault: " + obj.reference.objectId);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
156
|
+
finally {
|
|
157
|
+
try {
|
|
158
|
+
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
159
|
+
}
|
|
160
|
+
finally { if (e_2) throw e_2.error; }
|
|
161
|
+
}
|
|
162
|
+
return [3 /*break*/, 3];
|
|
163
|
+
case 2:
|
|
164
|
+
e_1 = _d.sent();
|
|
165
|
+
console.error(e_1);
|
|
166
|
+
return [3 /*break*/, 3];
|
|
167
|
+
case 3: return [2 /*return*/];
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
}
|
package/lib/test/testOracle.js
CHANGED
|
@@ -44,14 +44,15 @@ var provider = new sui_js_1.JsonRpcProvider(sui_js_1.Network.DEVNET); //for read
|
|
|
44
44
|
var keypair = sui_js_1.Ed25519Keypair.deriveKeypair(constants_1.TEST_MNEMONIC);
|
|
45
45
|
var signer = new sui_js_1.RawSigner(keypair, provider);
|
|
46
46
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
47
|
-
var price, unix, newOracleTx, moveCallTxn, digest, txn, newOracle, managerCap, updateOracleTx, newOracleObj;
|
|
47
|
+
var price, unix, decimal, newOracleTx, moveCallTxn, digest, txn, newOracle, managerCap, updateOracleTx, newOracleObj;
|
|
48
48
|
return __generator(this, function (_a) {
|
|
49
49
|
switch (_a.label) {
|
|
50
50
|
case 0:
|
|
51
51
|
price = 1234;
|
|
52
52
|
unix = 5678;
|
|
53
|
+
decimal = 8;
|
|
53
54
|
console.log("create new oracle...");
|
|
54
|
-
return [4 /*yield*/, (0, getNewOracleTx_1.getNewOracleTx)(constants_1.
|
|
55
|
+
return [4 /*yield*/, (0, getNewOracleTx_1.getNewOracleTx)(constants_1.ORACLE_PACKAGE, constants_1.DEFAULT_TYPE_ARGUMENT, decimal)];
|
|
55
56
|
case 1:
|
|
56
57
|
newOracleTx = _a.sent();
|
|
57
58
|
return [4 /*yield*/, signer.executeMoveCall(newOracleTx)];
|
|
@@ -66,7 +67,7 @@ var signer = new sui_js_1.RawSigner(keypair, provider);
|
|
|
66
67
|
managerCap = txn.effects.created[1].reference.objectId;
|
|
67
68
|
console.log("managerCap: " + managerCap);
|
|
68
69
|
console.log("update oracle...");
|
|
69
|
-
return [4 /*yield*/, (0, getUpdateOracleTx_1.getUpdateOracleTx)(constants_1.
|
|
70
|
+
return [4 /*yield*/, (0, getUpdateOracleTx_1.getUpdateOracleTx)(constants_1.ORACLE_PACKAGE, constants_1.DEFAULT_TYPE_ARGUMENT, newOracle, managerCap, price, unix)];
|
|
70
71
|
case 4:
|
|
71
72
|
updateOracleTx = _a.sent();
|
|
72
73
|
return [4 /*yield*/, signer.executeMoveCall(updateOracleTx)];
|