@typus/typus-sdk 1.0.55 → 1.0.56
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/utils/sponsorTransaction.d.ts +1 -1
- package/lib/utils/sponsorTransaction.js +7 -7
- package/lib/utils/token.d.ts +2 -0
- package/lib/utils/token.js +40 -0
- package/lib/utils/typus-dov-double/portfolio-vault.js +2 -16
- package/lib/utils/typus-dov-single/db-data.d.ts +16 -1
- package/lib/utils/typus-dov-single/db-data.js +157 -22
- package/lib/utils/typus-dov-single/portfolio-vault.js +2 -16
- package/lib/utils/typus-dov-single/user-history.d.ts +13 -0
- package/lib/utils/typus-dov-single/user-history.js +121 -0
- package/package.json +1 -1
|
@@ -16,7 +16,7 @@ export interface SponsorRpc {
|
|
|
16
16
|
}
|
|
17
17
|
export declare const sponsorTransactionBlock: (gaslessTxb: any, sponsor: any, provider: any, gasBudget: any, signerAddress: any) => Promise<[SponsoredTransaction, Uint8Array]>;
|
|
18
18
|
export declare const executeSponsorTransactionBlock: (provider: any, sponsoredResponse: any, senderSig: any) => Promise<any>;
|
|
19
|
-
export declare const sponsorTransactionE2E: (gaslessTxb: any, sponsor: any, provider: any, signer: any, gasBudget: any) => Promise<
|
|
19
|
+
export declare const sponsorTransactionE2E: (gaslessTxb: any, sponsor: any, provider: any, signer: any, gasBudget: any) => Promise<any>;
|
|
20
20
|
export declare function getSponsoredDeposit(sponsorApi: string, packageId: string, typeArguments: string[], registry: string, index: string, coins: string[], amount: string, signerAddress: string): Promise<[SponsoredTransaction, Uint8Array]>;
|
|
21
21
|
export declare function getSponsoredCompound(sponsorApi: string, packageId: string, typeArguments: string[], registry: string, index: string, signerAddress: string): Promise<[SponsoredTransaction, Uint8Array]>;
|
|
22
22
|
export declare function getSponsoredNewBid(sponsorApi: string, packageId: string, typeArguments: string[], registry: string, index: string, priceOracle: string, coins: string[], size: string, signerAddress: string): Promise<[SponsoredTransaction, Uint8Array]>;
|
|
@@ -65,9 +65,9 @@ exports.sponsorTransactionBlock = sponsorTransactionBlock;
|
|
|
65
65
|
// const senderSig = await signer.signTransactionBlock({ transactionBlock });
|
|
66
66
|
var executeSponsorTransactionBlock = function (provider, sponsoredResponse, senderSig) { return __awaiter(void 0, void 0, void 0, function () {
|
|
67
67
|
var executeResponse;
|
|
68
|
-
var _a
|
|
69
|
-
return __generator(this, function (
|
|
70
|
-
switch (
|
|
68
|
+
var _a;
|
|
69
|
+
return __generator(this, function (_b) {
|
|
70
|
+
switch (_b.label) {
|
|
71
71
|
case 0: return [4 /*yield*/, provider.executeTransactionBlock({
|
|
72
72
|
transactionBlock: sponsoredResponse.txBytes,
|
|
73
73
|
signature: [senderSig.signature, sponsoredResponse.signature],
|
|
@@ -75,9 +75,9 @@ var executeSponsorTransactionBlock = function (provider, sponsoredResponse, send
|
|
|
75
75
|
requestType: "WaitForLocalExecution",
|
|
76
76
|
})];
|
|
77
77
|
case 1:
|
|
78
|
-
executeResponse =
|
|
79
|
-
console.log("Execution Status:", (_a = executeResponse.effects) === null || _a === void 0 ? void 0 : _a.status.status);
|
|
80
|
-
return [2 /*return*/,
|
|
78
|
+
executeResponse = _b.sent();
|
|
79
|
+
console.log("SDK Execution Status:", (_a = executeResponse.effects) === null || _a === void 0 ? void 0 : _a.status.status);
|
|
80
|
+
return [2 /*return*/, executeResponse];
|
|
81
81
|
}
|
|
82
82
|
});
|
|
83
83
|
}); };
|
|
@@ -114,7 +114,7 @@ var sponsorTransactionE2E = function (gaslessTxb, sponsor, provider, signer, gas
|
|
|
114
114
|
case 6:
|
|
115
115
|
executeResponse = _e.sent();
|
|
116
116
|
console.log("Execution Status:", (_d = executeResponse.effects) === null || _d === void 0 ? void 0 : _d.status.status);
|
|
117
|
-
return [2 /*return
|
|
117
|
+
return [2 /*return*/, executeResponse];
|
|
118
118
|
}
|
|
119
119
|
});
|
|
120
120
|
}); };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assetToDecimal = exports.typeArgsToAssets = void 0;
|
|
4
|
+
var sui_js_1 = require("@mysten/sui.js");
|
|
5
|
+
function typeArgsToAssets(typeArgs) {
|
|
6
|
+
var assets = typeArgs.map(function (x) {
|
|
7
|
+
var typeArgs = x.split("::");
|
|
8
|
+
switch ((0, sui_js_1.normalizeSuiAddress)(typeArgs[0])) {
|
|
9
|
+
case "0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881":
|
|
10
|
+
return "WBTC";
|
|
11
|
+
case "0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5":
|
|
12
|
+
return "WETH";
|
|
13
|
+
case "0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf":
|
|
14
|
+
return "USDC";
|
|
15
|
+
case "0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c":
|
|
16
|
+
return "USDT";
|
|
17
|
+
default:
|
|
18
|
+
return typeArgs[2];
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
return assets;
|
|
22
|
+
}
|
|
23
|
+
exports.typeArgsToAssets = typeArgsToAssets;
|
|
24
|
+
function assetToDecimal(asset) {
|
|
25
|
+
switch (asset) {
|
|
26
|
+
case "SUI":
|
|
27
|
+
return 9;
|
|
28
|
+
case "WBTC":
|
|
29
|
+
return 8;
|
|
30
|
+
case "WETH":
|
|
31
|
+
return 8;
|
|
32
|
+
case "USDC":
|
|
33
|
+
return 6;
|
|
34
|
+
case "USDT":
|
|
35
|
+
return 6;
|
|
36
|
+
case "CETUS":
|
|
37
|
+
return 9;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.assetToDecimal = assetToDecimal;
|
|
@@ -37,9 +37,9 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.getPortfolioVaults = void 0;
|
|
40
|
-
var sui_js_1 = require("@mysten/sui.js");
|
|
41
40
|
var vault_1 = require("../typus-framework/vault");
|
|
42
41
|
var dutch_1 = require("../typus-framework/dutch");
|
|
42
|
+
var token_1 = require("../token");
|
|
43
43
|
function getPortfolioVaults(provider, registry, token_deposit_vault_registry, usd_deposit_vault_registry, bid_vault_registry, index) {
|
|
44
44
|
return __awaiter(this, void 0, void 0, function () {
|
|
45
45
|
var portfolioVaultIds, portfolioVaults, tokenDepositVaultIds, usdDepositVaultIds, bidVaultIds;
|
|
@@ -65,21 +65,7 @@ function getPortfolioVaults(provider, registry, token_deposit_vault_registry, us
|
|
|
65
65
|
var vaultId = portfolioVault.data.content.fields.id.id;
|
|
66
66
|
// @ts-ignore
|
|
67
67
|
var typeArgs = new RegExp(".*<(.*), (.*), (.*)>").exec(portfolioVault.data.content.type).slice(1, 4);
|
|
68
|
-
var assets =
|
|
69
|
-
var typeArgs = x.split("::");
|
|
70
|
-
switch ((0, sui_js_1.normalizeSuiAddress)(typeArgs[0])) {
|
|
71
|
-
case "0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881":
|
|
72
|
-
return "WBTC";
|
|
73
|
-
case "0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5":
|
|
74
|
-
return "WETH";
|
|
75
|
-
case "0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf":
|
|
76
|
-
return "USDC";
|
|
77
|
-
case "0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c":
|
|
78
|
-
return "USDT";
|
|
79
|
-
default:
|
|
80
|
-
return typeArgs[2];
|
|
81
|
-
}
|
|
82
|
-
});
|
|
68
|
+
var assets = (0, token_1.typeArgsToAssets)(typeArgs);
|
|
83
69
|
var oracleInfo = {
|
|
84
70
|
// @ts-ignore
|
|
85
71
|
price: portfolioVault.data.content.fields.info.fields.oracle_info.fields.price,
|
|
@@ -1,4 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
import { PortfolioVault } from "./portfolio-vault";
|
|
2
|
+
export declare function getDb(functionNames: string[], vaultIndex?: string | undefined): Promise<any>;
|
|
2
3
|
export declare function getNewAuction(vaultIndex?: string | undefined): Promise<void>;
|
|
3
4
|
export declare function getDelivery(vaultIndex?: string | undefined): Promise<void>;
|
|
4
5
|
export declare function getSettle(vaultIndex?: string | undefined): Promise<void>;
|
|
6
|
+
export declare function getShowMap(portfolioVaults: Map<string, PortfolioVault>, vaultIndex?: string | undefined): Promise<Map<string, Map<string, Show>>>;
|
|
7
|
+
interface Show {
|
|
8
|
+
ProjectedAPY: number;
|
|
9
|
+
ActivationDate: Date;
|
|
10
|
+
SettlementTime: Date;
|
|
11
|
+
StrikePrice: number[];
|
|
12
|
+
SettlePrice: number;
|
|
13
|
+
Return: number;
|
|
14
|
+
Filled: number;
|
|
15
|
+
PaidToDepositors: number;
|
|
16
|
+
PaidToBidders: any;
|
|
17
|
+
EarnedByDepositors: any;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
@@ -36,15 +36,15 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.getSettle = exports.getDelivery = exports.getNewAuction = exports.getDb = void 0;
|
|
40
|
-
var dbFilter = function (
|
|
39
|
+
exports.getShowMap = exports.getSettle = exports.getDelivery = exports.getNewAuction = exports.getDb = void 0;
|
|
40
|
+
var dbFilter = function (functionNames, vaultIndex) {
|
|
41
41
|
if (vaultIndex === void 0) { vaultIndex = undefined; }
|
|
42
42
|
return ({
|
|
43
43
|
collection: "typus_dov_single",
|
|
44
44
|
database: "mainnet_1_0_0",
|
|
45
45
|
dataSource: "typus",
|
|
46
46
|
filter: {
|
|
47
|
-
function:
|
|
47
|
+
function: { $in: functionNames },
|
|
48
48
|
index: vaultIndex,
|
|
49
49
|
},
|
|
50
50
|
});
|
|
@@ -54,14 +54,14 @@ var headers = {
|
|
|
54
54
|
"api-key": "ZnJu3wGqGoYotyvHl5Qis0UvUJRDJkBBwIsRaHdmBuzfy4jyPBH1LzazIfOO0GSm",
|
|
55
55
|
"Content-Type": "application/json",
|
|
56
56
|
};
|
|
57
|
-
function getDb(
|
|
57
|
+
function getDb(functionNames, vaultIndex) {
|
|
58
58
|
if (vaultIndex === void 0) { vaultIndex = undefined; }
|
|
59
59
|
return __awaiter(this, void 0, void 0, function () {
|
|
60
60
|
var jsonData, response, data;
|
|
61
61
|
return __generator(this, function (_a) {
|
|
62
62
|
switch (_a.label) {
|
|
63
63
|
case 0:
|
|
64
|
-
jsonData = JSON.stringify(dbFilter(
|
|
64
|
+
jsonData = JSON.stringify(dbFilter(functionNames, vaultIndex));
|
|
65
65
|
return [4 /*yield*/, fetch(apiUrl, {
|
|
66
66
|
method: "POST",
|
|
67
67
|
headers: headers,
|
|
@@ -73,10 +73,7 @@ function getDb(functionName, vaultIndex) {
|
|
|
73
73
|
return [4 /*yield*/, response.json()];
|
|
74
74
|
case 2:
|
|
75
75
|
data = _a.sent();
|
|
76
|
-
data.documents
|
|
77
|
-
console.log(document);
|
|
78
|
-
});
|
|
79
|
-
_a.label = 3;
|
|
76
|
+
return [2 /*return*/, data.documents];
|
|
80
77
|
case 3: return [2 /*return*/];
|
|
81
78
|
}
|
|
82
79
|
});
|
|
@@ -88,7 +85,7 @@ function getNewAuction(vaultIndex) {
|
|
|
88
85
|
return __awaiter(this, void 0, void 0, function () {
|
|
89
86
|
return __generator(this, function (_a) {
|
|
90
87
|
switch (_a.label) {
|
|
91
|
-
case 0: return [4 /*yield*/, getDb("NewAuction", vaultIndex)];
|
|
88
|
+
case 0: return [4 /*yield*/, getDb(["NewAuction"], vaultIndex)];
|
|
92
89
|
case 1:
|
|
93
90
|
_a.sent();
|
|
94
91
|
return [2 /*return*/];
|
|
@@ -102,7 +99,7 @@ function getDelivery(vaultIndex) {
|
|
|
102
99
|
return __awaiter(this, void 0, void 0, function () {
|
|
103
100
|
return __generator(this, function (_a) {
|
|
104
101
|
switch (_a.label) {
|
|
105
|
-
case 0: return [4 /*yield*/, getDb("Delivery", vaultIndex)];
|
|
102
|
+
case 0: return [4 /*yield*/, getDb(["Delivery"], vaultIndex)];
|
|
106
103
|
case 1:
|
|
107
104
|
_a.sent();
|
|
108
105
|
return [2 /*return*/];
|
|
@@ -114,24 +111,162 @@ exports.getDelivery = getDelivery;
|
|
|
114
111
|
function getSettle(vaultIndex) {
|
|
115
112
|
if (vaultIndex === void 0) { vaultIndex = undefined; }
|
|
116
113
|
return __awaiter(this, void 0, void 0, function () {
|
|
114
|
+
var settleEvents;
|
|
117
115
|
return __generator(this, function (_a) {
|
|
118
116
|
switch (_a.label) {
|
|
119
|
-
case 0: return [4 /*yield*/, getDb("Settle", vaultIndex)];
|
|
117
|
+
case 0: return [4 /*yield*/, getDb(["Settle"], vaultIndex)];
|
|
120
118
|
case 1:
|
|
121
|
-
_a.sent();
|
|
119
|
+
settleEvents = _a.sent();
|
|
120
|
+
console.log(settleEvents);
|
|
122
121
|
return [2 /*return*/];
|
|
123
122
|
}
|
|
124
123
|
});
|
|
125
124
|
});
|
|
126
125
|
}
|
|
127
126
|
exports.getSettle = getSettle;
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
127
|
+
function getShowMap(portfolioVaults, vaultIndex) {
|
|
128
|
+
if (vaultIndex === void 0) { vaultIndex = undefined; }
|
|
129
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
130
|
+
var events, groupEventMap, showMap;
|
|
131
|
+
var _this = this;
|
|
132
|
+
return __generator(this, function (_a) {
|
|
133
|
+
switch (_a.label) {
|
|
134
|
+
case 0: return [4 /*yield*/, getDb(["NewAuction", "Delivery", "Settle"], vaultIndex)];
|
|
135
|
+
case 1:
|
|
136
|
+
events = _a.sent();
|
|
137
|
+
return [4 /*yield*/, events.reduce(function (promise, event) { return __awaiter(_this, void 0, void 0, function () {
|
|
138
|
+
var map, index, round, round_event, round_events, round_events, round_events;
|
|
139
|
+
return __generator(this, function (_a) {
|
|
140
|
+
switch (_a.label) {
|
|
141
|
+
case 0: return [4 /*yield*/, promise];
|
|
142
|
+
case 1:
|
|
143
|
+
map = _a.sent();
|
|
144
|
+
index = event.index.toString();
|
|
145
|
+
round = event.round.toString();
|
|
146
|
+
round_event = {
|
|
147
|
+
newAuctionEvent: undefined,
|
|
148
|
+
deliveryEvent: undefined,
|
|
149
|
+
settleEvent: undefined,
|
|
150
|
+
};
|
|
151
|
+
if (map.has(index)) {
|
|
152
|
+
round_events = map.get(index);
|
|
153
|
+
if (round_events.has(round)) {
|
|
154
|
+
round_event = round_events.get(round);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
switch (event.function) {
|
|
158
|
+
case "NewAuction":
|
|
159
|
+
round_event.newAuctionEvent = event;
|
|
160
|
+
round_event.newAuctionEvent.vault_config = {
|
|
161
|
+
payoffConfigs: event.vault_config.payoff_configs.map(function (x) {
|
|
162
|
+
return ({
|
|
163
|
+
strikePct: x.strike_pct,
|
|
164
|
+
weight: x.weight,
|
|
165
|
+
isBuyer: x.is_buyer,
|
|
166
|
+
strike: x.strike,
|
|
167
|
+
});
|
|
168
|
+
}),
|
|
169
|
+
strikeIncrement: event.vault_config.strike_increment,
|
|
170
|
+
decaySpeed: event.vault_config.decay_speed,
|
|
171
|
+
initialPrice: event.vault_config.initial_price,
|
|
172
|
+
finalPrice: event.vault_config.final_price,
|
|
173
|
+
auctionDurationInMs: event.vault_config.auction_duration_in_ms,
|
|
174
|
+
};
|
|
175
|
+
break;
|
|
176
|
+
case "Delivery":
|
|
177
|
+
round_event.deliveryEvent = event;
|
|
178
|
+
break;
|
|
179
|
+
case "Settle":
|
|
180
|
+
round_event.settleEvent = event;
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
if (map.get(index)) {
|
|
184
|
+
round_events = map.get(index);
|
|
185
|
+
round_events.set(round, round_event);
|
|
186
|
+
map.set(index, round_events);
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
round_events = new Map();
|
|
190
|
+
round_events.set(round, round_event);
|
|
191
|
+
map.set(index, round_events);
|
|
192
|
+
}
|
|
193
|
+
return [2 /*return*/, map];
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
}); }, Promise.resolve(new Map()))];
|
|
197
|
+
case 2:
|
|
198
|
+
groupEventMap = _a.sent();
|
|
199
|
+
showMap = new Map();
|
|
200
|
+
return [4 /*yield*/, groupEventMap.forEach(function (innerMap, outerKey) { return __awaiter(_this, void 0, void 0, function () {
|
|
201
|
+
var newInnerMap_1;
|
|
202
|
+
var _this = this;
|
|
203
|
+
return __generator(this, function (_a) {
|
|
204
|
+
if (portfolioVaults[outerKey]) {
|
|
205
|
+
newInnerMap_1 = new Map();
|
|
206
|
+
innerMap.forEach(function (groupEvent, innerKey) { return __awaiter(_this, void 0, void 0, function () {
|
|
207
|
+
var show;
|
|
208
|
+
return __generator(this, function (_a) {
|
|
209
|
+
switch (_a.label) {
|
|
210
|
+
case 0:
|
|
211
|
+
if (!groupEvent.settleEvent) return [3 /*break*/, 2];
|
|
212
|
+
return [4 /*yield*/, groupEventToShow(groupEvent, portfolioVaults[outerKey])];
|
|
213
|
+
case 1:
|
|
214
|
+
show = _a.sent();
|
|
215
|
+
// console.log(show);
|
|
216
|
+
newInnerMap_1.set(innerKey, show);
|
|
217
|
+
_a.label = 2;
|
|
218
|
+
case 2: return [2 /*return*/];
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
}); });
|
|
222
|
+
showMap.set(outerKey, newInnerMap_1);
|
|
223
|
+
}
|
|
224
|
+
return [2 /*return*/];
|
|
225
|
+
});
|
|
226
|
+
}); })];
|
|
227
|
+
case 3:
|
|
228
|
+
_a.sent();
|
|
229
|
+
// console.log(showMap);
|
|
230
|
+
return [2 /*return*/, showMap];
|
|
231
|
+
}
|
|
232
|
+
});
|
|
136
233
|
});
|
|
137
|
-
}
|
|
234
|
+
}
|
|
235
|
+
exports.getShowMap = getShowMap;
|
|
236
|
+
function groupEventToShow(groupEvent, portfolioVault) {
|
|
237
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
238
|
+
var newAuctionEvent, deliveryEvent, settleEvent, PaidToDepositors, portfolio_payoff, PaidToBidders, exp, result;
|
|
239
|
+
return __generator(this, function (_a) {
|
|
240
|
+
newAuctionEvent = groupEvent.newAuctionEvent;
|
|
241
|
+
deliveryEvent = groupEvent.deliveryEvent;
|
|
242
|
+
settleEvent = groupEvent.settleEvent;
|
|
243
|
+
PaidToDepositors = Number(deliveryEvent.premium_value) / Math.pow(10, Number(portfolioVault.config.bTokenDecimal));
|
|
244
|
+
portfolio_payoff = settleEvent.portfolio_payoff_is_neg ? Number(-settleEvent.portfolio_payoff) : Number(settleEvent.portfolio_payoff);
|
|
245
|
+
PaidToBidders = portfolio_payoff / Math.pow(10, Number(portfolioVault.config.oTokenDecimal));
|
|
246
|
+
switch (portfolioVault.config.period) {
|
|
247
|
+
case 0:
|
|
248
|
+
exp = 365;
|
|
249
|
+
break;
|
|
250
|
+
case 1:
|
|
251
|
+
exp = 52;
|
|
252
|
+
break;
|
|
253
|
+
case 2:
|
|
254
|
+
exp = 12;
|
|
255
|
+
break;
|
|
256
|
+
}
|
|
257
|
+
result = {
|
|
258
|
+
ProjectedAPY: Math.pow((1 + (1.01 * Number(deliveryEvent.delivery_price)) / Math.pow(10, Number(portfolioVault.config.bTokenDecimal))), exp) - 1,
|
|
259
|
+
ActivationDate: new Date(Number(newAuctionEvent.timestamp_ms)),
|
|
260
|
+
SettlementTime: new Date(Number(settleEvent.timestamp_ms)),
|
|
261
|
+
StrikePrice: newAuctionEvent.vault_config.payoffConfigs.map(function (payoffConfig) { return Number(payoffConfig.strike) / Math.pow(10, 8); }),
|
|
262
|
+
SettlePrice: Number(settleEvent.oracle_price) / Math.pow(10, 8),
|
|
263
|
+
Return: Number(settleEvent.share_price) / Math.pow(10, 8) - 1,
|
|
264
|
+
Filled: Number(deliveryEvent.delivery_size) / Number(deliveryEvent.max_size),
|
|
265
|
+
PaidToDepositors: PaidToDepositors,
|
|
266
|
+
PaidToBidders: PaidToBidders,
|
|
267
|
+
EarnedByDepositors: PaidToDepositors - PaidToBidders,
|
|
268
|
+
};
|
|
269
|
+
return [2 /*return*/, result];
|
|
270
|
+
});
|
|
271
|
+
});
|
|
272
|
+
}
|
|
@@ -37,9 +37,9 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.getPortfolioVaultAuctionDelayTsMs = exports.getPortfolioVaults = void 0;
|
|
40
|
-
var sui_js_1 = require("@mysten/sui.js");
|
|
41
40
|
var vault_1 = require("../typus-framework/vault");
|
|
42
41
|
var dutch_1 = require("../typus-framework/dutch");
|
|
42
|
+
var token_1 = require("../token");
|
|
43
43
|
function getPortfolioVaults(provider, registry, deposit_vault_registry, bid_vault_registry, index) {
|
|
44
44
|
return __awaiter(this, void 0, void 0, function () {
|
|
45
45
|
var portfolioVaultIds, portfolioVaults, depositVaultIds, bidVaultIds;
|
|
@@ -69,21 +69,7 @@ function getPortfolioVaults(provider, registry, deposit_vault_registry, bid_vaul
|
|
|
69
69
|
vaultId = portfolioVault.data.content.fields.id.id;
|
|
70
70
|
auctionDelayTsMs = "0";
|
|
71
71
|
typeArgs = new RegExp(".*<(.*), (.*), (.*)>").exec(portfolioVault.data.content.type).slice(1, 4);
|
|
72
|
-
assets =
|
|
73
|
-
var typeArgs = x.split("::");
|
|
74
|
-
switch ((0, sui_js_1.normalizeSuiAddress)(typeArgs[0])) {
|
|
75
|
-
case "0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881":
|
|
76
|
-
return "WBTC";
|
|
77
|
-
case "0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5":
|
|
78
|
-
return "WETH";
|
|
79
|
-
case "0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf":
|
|
80
|
-
return "USDC";
|
|
81
|
-
case "0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c":
|
|
82
|
-
return "USDT";
|
|
83
|
-
default:
|
|
84
|
-
return typeArgs[2];
|
|
85
|
-
}
|
|
86
|
-
});
|
|
72
|
+
assets = (0, token_1.typeArgsToAssets)(typeArgs);
|
|
87
73
|
deliveryInfo =
|
|
88
74
|
// @ts-ignore
|
|
89
75
|
portfolioVault.data.content.fields.info.fields.delivery_info
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { JsonRpcProvider } from "@mysten/sui.js";
|
|
2
|
+
export declare function getUserHistory(provider: JsonRpcProvider, originPackage: string, sender: string): Promise<TxHistory[]>;
|
|
3
|
+
interface TxHistory {
|
|
4
|
+
Vault: string;
|
|
5
|
+
Action: string;
|
|
6
|
+
Date: Date;
|
|
7
|
+
txDigest: string;
|
|
8
|
+
Asset: string;
|
|
9
|
+
Amount: number;
|
|
10
|
+
Fee: number;
|
|
11
|
+
BidSize: number;
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,121 @@
|
|
|
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 (g && (g = 0, op[0] && (_ = 0)), _) 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.getUserHistory = void 0;
|
|
40
|
+
var token_1 = require("../token");
|
|
41
|
+
function getUserHistory(provider, originPackage, sender) {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
43
|
+
var senderFilter, result, txHistory, nextPage;
|
|
44
|
+
return __generator(this, function (_a) {
|
|
45
|
+
switch (_a.label) {
|
|
46
|
+
case 0:
|
|
47
|
+
senderFilter = {
|
|
48
|
+
Sender: sender,
|
|
49
|
+
};
|
|
50
|
+
return [4 /*yield*/, provider.queryEvents({ query: senderFilter })];
|
|
51
|
+
case 1:
|
|
52
|
+
result = _a.sent();
|
|
53
|
+
return [4 /*yield*/, parseTxHistory(result.data, originPackage)];
|
|
54
|
+
case 2:
|
|
55
|
+
txHistory = _a.sent();
|
|
56
|
+
_a.label = 3;
|
|
57
|
+
case 3:
|
|
58
|
+
if (!result.hasNextPage) return [3 /*break*/, 6];
|
|
59
|
+
return [4 /*yield*/, provider.queryEvents({ query: senderFilter, cursor: result.nextCursor })];
|
|
60
|
+
case 4:
|
|
61
|
+
result = _a.sent();
|
|
62
|
+
return [4 /*yield*/, parseTxHistory(result.data, originPackage)];
|
|
63
|
+
case 5:
|
|
64
|
+
nextPage = _a.sent();
|
|
65
|
+
txHistory = txHistory.concat(nextPage);
|
|
66
|
+
return [3 /*break*/, 3];
|
|
67
|
+
case 6:
|
|
68
|
+
// console.log(txHistory);
|
|
69
|
+
return [2 /*return*/, txHistory];
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
exports.getUserHistory = getUserHistory;
|
|
75
|
+
function parseTxHistory(datas, originPackage) {
|
|
76
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
77
|
+
var _this = this;
|
|
78
|
+
return __generator(this, function (_a) {
|
|
79
|
+
switch (_a.label) {
|
|
80
|
+
case 0: return [4 /*yield*/, datas
|
|
81
|
+
.filter(function (event) {
|
|
82
|
+
var type = event.type;
|
|
83
|
+
return type.startsWith(originPackage);
|
|
84
|
+
})
|
|
85
|
+
.reduce(function (promise, event) { return __awaiter(_this, void 0, void 0, function () {
|
|
86
|
+
var txHistory, functionType, action, matches, typeArgs, assets, asset, parsedJson;
|
|
87
|
+
var _a;
|
|
88
|
+
return __generator(this, function (_b) {
|
|
89
|
+
switch (_b.label) {
|
|
90
|
+
case 0: return [4 /*yield*/, promise];
|
|
91
|
+
case 1:
|
|
92
|
+
txHistory = _b.sent();
|
|
93
|
+
functionType = (_a = new RegExp("^([^::]+)::([^::]+)::([^<]+)").exec(event.type)) === null || _a === void 0 ? void 0 : _a.slice(1, 4);
|
|
94
|
+
action = functionType[2];
|
|
95
|
+
matches = new RegExp("<([^>]+)>").exec(event.type);
|
|
96
|
+
if (matches) {
|
|
97
|
+
typeArgs = matches[1].split(",");
|
|
98
|
+
assets = (0, token_1.typeArgsToAssets)(typeArgs);
|
|
99
|
+
asset = action == "NewBid" ? assets[2] : assets[0];
|
|
100
|
+
parsedJson = event.parsedJson;
|
|
101
|
+
txHistory.push({
|
|
102
|
+
Vault: parsedJson.index,
|
|
103
|
+
Action: action,
|
|
104
|
+
Date: new Date(Number(event.timestampMs)),
|
|
105
|
+
txDigest: event.id.txDigest,
|
|
106
|
+
Asset: asset,
|
|
107
|
+
Amount: Number(parsedJson.amount) / Math.pow(10, (0, token_1.assetToDecimal)(asset)),
|
|
108
|
+
Fee: Number(parsedJson.fee) / Math.pow(10, (0, token_1.assetToDecimal)(asset)),
|
|
109
|
+
BidSize: Number(parsedJson.size) / Math.pow(10, (0, token_1.assetToDecimal)(asset)),
|
|
110
|
+
});
|
|
111
|
+
return [2 /*return*/, txHistory];
|
|
112
|
+
}
|
|
113
|
+
return [2 /*return*/];
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}); }, Promise.resolve(new Array()))];
|
|
117
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
}
|