@typus/typus-sdk 1.0.55 → 1.0.57

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.
@@ -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<void>;
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, _b;
69
- return __generator(this, function (_c) {
70
- switch (_c.label) {
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 = _c.sent();
79
- console.log("Execution Status:", (_a = executeResponse.effects) === null || _a === void 0 ? void 0 : _a.status.status);
80
- return [2 /*return*/, (_b = executeResponse.effects) === null || _b === void 0 ? void 0 : _b.status.status];
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,2 @@
1
+ export declare function typeArgsToAssets(typeArgs: string[]): string[];
2
+ export declare function assetToDecimal(asset: string): number | undefined;
@@ -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 = typeArgs.map(function (x) {
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
- export declare function getDb(functionName: string, vaultIndex?: string | undefined): Promise<void>;
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 (functionName, vaultIndex) {
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: functionName,
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(functionName, vaultIndex) {
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(functionName));
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.map(function (document) {
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
- (function () { return __awaiter(void 0, void 0, void 0, function () {
129
- return __generator(this, function (_a) {
130
- switch (_a.label) {
131
- case 0: return [4 /*yield*/, getSettle()];
132
- case 1:
133
- _a.sent();
134
- return [2 /*return*/];
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 = typeArgs.map(function (x) {
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
@@ -78,5 +78,5 @@ export declare function getUnsubscribeTx(gasBudget: number, packageId: string, t
78
78
  )
79
79
  @param typeArguments [Deposit Vault Token, Bid Vault Token, Oracle Token]
80
80
  */
81
- export declare function getNewBidTx(gasBudget: number, packageId: string, typeArguments: string[], registry: string, index: string, priceOracle: string, coins: string[], size: string, premium_required: string, // fe float * b_token_decimal
81
+ export declare function getNewBidTx(gasBudget: number, packageId: string, typeArguments: string[], registry: string, additional_config_registry: string, index: string, priceOracle: string, coins: string[], size: string, premium_required: string, // fe float * b_token_decimal
82
82
  usingSponsoredGasCoin?: boolean): Promise<TransactionBlock>;
@@ -250,7 +250,7 @@ exports.getUnsubscribeTx = getUnsubscribeTx;
250
250
  )
251
251
  @param typeArguments [Deposit Vault Token, Bid Vault Token, Oracle Token]
252
252
  */
253
- function getNewBidTx(gasBudget, packageId, typeArguments, registry, index, priceOracle, coins, size, premium_required, // fe float * b_token_decimal
253
+ function getNewBidTx(gasBudget, packageId, typeArguments, registry, additional_config_registry, index, priceOracle, coins, size, premium_required, // fe float * b_token_decimal
254
254
  usingSponsoredGasCoin) {
255
255
  if (usingSponsoredGasCoin === void 0) { usingSponsoredGasCoin = false; }
256
256
  return __awaiter(this, void 0, void 0, function () {
@@ -263,7 +263,15 @@ usingSponsoredGasCoin) {
263
263
  tx.moveCall({
264
264
  target: "".concat(packageId, "::typus_dov_single::new_bid"),
265
265
  typeArguments: typeArguments,
266
- arguments: [tx.pure(registry), tx.pure(index), tx.pure(priceOracle), tx.pure("0x6"), tx.makeMoveVec({ objects: [coin] }), tx.pure(size)],
266
+ arguments: [
267
+ tx.pure(registry),
268
+ tx.pure(additional_config_registry),
269
+ tx.pure(index),
270
+ tx.pure(priceOracle),
271
+ tx.pure("0x6"),
272
+ tx.makeMoveVec({ objects: [coin] }),
273
+ tx.pure(size),
274
+ ],
267
275
  });
268
276
  }
269
277
  else {
@@ -272,6 +280,7 @@ usingSponsoredGasCoin) {
272
280
  typeArguments: typeArguments,
273
281
  arguments: [
274
282
  tx.pure(registry),
283
+ tx.pure(additional_config_registry),
275
284
  tx.pure(index),
276
285
  tx.pure(priceOracle),
277
286
  tx.pure("0x6"),
@@ -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
+ }
@@ -26,9 +26,17 @@ export interface VaultUserShares {
26
26
  premium: VaultUserShare[];
27
27
  performanceFee: VaultUserShare[];
28
28
  }
29
+ export interface AdditionalConfig {
30
+ index: string;
31
+ auction_start_delay_ts_ms: string;
32
+ auction_lot_size: string;
33
+ auction_benchmark_price: string;
34
+ oracle_id: string;
35
+ }
29
36
  export declare function getUserShares(provider: JsonRpcProvider, packageId: string, registry: string, indexes: string[], user: string): Promise<Map<string, UserShare>>;
30
- export declare function getAuctionMaxSize(provider: JsonRpcProvider, packageId: string, typeArguments: string[], registry: string, index: string, priceOracle: string): Promise<BigInt>;
31
- export declare function getMaxLossPerUnit(provider: JsonRpcProvider, packageId: string, typeArguments: string[], registry: string, index: string, priceOracle: string): Promise<BigInt>;
37
+ export declare function getAuctionMaxSize(provider: JsonRpcProvider, packageId: string, typeArguments: string[], registry: string, additional_config_registry: string, index: string, priceOracle: string): Promise<BigInt>;
38
+ export declare function getMaxLossPerUnit(provider: JsonRpcProvider, packageId: string, typeArguments: string[], registry: string, additional_config_registry: string, index: string, priceOracle: string): Promise<BigInt>;
32
39
  export declare function getAuctionTotalBidSize(provider: JsonRpcProvider, packageId: string, typeArguments: string[], registry: string, index: string): Promise<BigInt>;
33
40
  export declare function getAuctionBids(provider: JsonRpcProvider, packageId: string, typeArguments: string[], registry: string, index: string): Promise<UserBid[]>;
34
41
  export declare function getVaultUserShares(provider: JsonRpcProvider, packageId: string, typeArguments: string[], registry: string, index: string): Promise<VaultUserShares>;
42
+ export declare function getAdditionalConfigs(provider: JsonRpcProvider, packageId: string, additional_config_registry: string, indexes: string[]): Promise<Map<string, AdditionalConfig>>;
@@ -52,8 +52,9 @@ var __read = (this && this.__read) || function (o, n) {
52
52
  return ar;
53
53
  };
54
54
  Object.defineProperty(exports, "__esModule", { value: true });
55
- exports.getVaultUserShares = exports.getAuctionBids = exports.getAuctionTotalBidSize = exports.getMaxLossPerUnit = exports.getAuctionMaxSize = exports.getUserShares = void 0;
55
+ exports.getAdditionalConfigs = exports.getVaultUserShares = exports.getAuctionBids = exports.getAuctionTotalBidSize = exports.getMaxLossPerUnit = exports.getAuctionMaxSize = exports.getUserShares = void 0;
56
56
  var sui_js_1 = require("@mysten/sui.js");
57
+ var bcs_1 = require("@mysten/bcs");
57
58
  var tools_1 = require("../tools");
58
59
  var constants_1 = require("../../constants");
59
60
  function getUserShares(provider, packageId, registry, indexes, user) {
@@ -138,7 +139,7 @@ function getUserShares(provider, packageId, registry, indexes, user) {
138
139
  });
139
140
  }
140
141
  exports.getUserShares = getUserShares;
141
- function getAuctionMaxSize(provider, packageId, typeArguments, registry, index, priceOracle) {
142
+ function getAuctionMaxSize(provider, packageId, typeArguments, registry, additional_config_registry, index, priceOracle) {
142
143
  return __awaiter(this, void 0, void 0, function () {
143
144
  var transactionBlock, target, transactionBlockArguments, bytes;
144
145
  return __generator(this, function (_a) {
@@ -148,6 +149,7 @@ function getAuctionMaxSize(provider, packageId, typeArguments, registry, index,
148
149
  target = "".concat(packageId, "::typus_dov_single::get_auction_max_size");
149
150
  transactionBlockArguments = [
150
151
  transactionBlock.pure(registry),
152
+ transactionBlock.pure(additional_config_registry),
151
153
  transactionBlock.pure(index),
152
154
  transactionBlock.pure(priceOracle),
153
155
  transactionBlock.pure(constants_1.CLOCK),
@@ -166,7 +168,7 @@ function getAuctionMaxSize(provider, packageId, typeArguments, registry, index,
166
168
  });
167
169
  }
168
170
  exports.getAuctionMaxSize = getAuctionMaxSize;
169
- function getMaxLossPerUnit(provider, packageId, typeArguments, registry, index, priceOracle) {
171
+ function getMaxLossPerUnit(provider, packageId, typeArguments, registry, additional_config_registry, index, priceOracle) {
170
172
  return __awaiter(this, void 0, void 0, function () {
171
173
  var transactionBlock, target, transactionBlockArguments, bytes;
172
174
  return __generator(this, function (_a) {
@@ -176,6 +178,7 @@ function getMaxLossPerUnit(provider, packageId, typeArguments, registry, index,
176
178
  target = "".concat(packageId, "::typus_dov_single::get_max_loss_per_unit");
177
179
  transactionBlockArguments = [
178
180
  transactionBlock.pure(registry),
181
+ transactionBlock.pure(additional_config_registry),
179
182
  transactionBlock.pure(index),
180
183
  transactionBlock.pure(priceOracle),
181
184
  transactionBlock.pure(constants_1.CLOCK),
@@ -313,3 +316,69 @@ function parseVaultUserShares(bytes) {
313
316
  }
314
317
  return result.reverse();
315
318
  }
319
+ function getAdditionalConfigs(provider, packageId, additional_config_registry, indexes) {
320
+ return __awaiter(this, void 0, void 0, function () {
321
+ var transactionBlock, target, transactionBlockArguments, bytes, reader, result;
322
+ return __generator(this, function (_a) {
323
+ switch (_a.label) {
324
+ case 0:
325
+ transactionBlock = new sui_js_1.TransactionBlock();
326
+ target = "".concat(packageId, "::typus_dov_single::get_additional_configs");
327
+ transactionBlockArguments = [transactionBlock.pure(additional_config_registry), transactionBlock.pure(indexes)];
328
+ // let transactionBlockArguments = [];
329
+ transactionBlock.moveCall({
330
+ target: target,
331
+ arguments: transactionBlockArguments,
332
+ });
333
+ return [4 /*yield*/, provider.devInspectTransactionBlock({ transactionBlock: transactionBlock, sender: constants_1.SENDER })];
334
+ case 1:
335
+ bytes = (_a.sent()).results[0].returnValues[0][0];
336
+ reader = new bcs_1.BcsReader(new Uint8Array(bytes));
337
+ result = Array.from(new Map()).reduce(function (map, _a) {
338
+ var _b = __read(_a, 2), key = _b[0], value = _b[1];
339
+ map[key] = value;
340
+ return map;
341
+ }, {});
342
+ // index: u64
343
+ // auction_start_delay_ts_ms: Option<u64>
344
+ // auction_lot_size: Option<u64>
345
+ // auction_benchmark_price: Option<u64>
346
+ // oracle_id: Option<address>
347
+ reader.readVec(function (reader) {
348
+ reader.read8();
349
+ var index = reader.read64();
350
+ var auction_start_delay_ts_ms = reader
351
+ .readVec(function (reader) {
352
+ return reader.read64();
353
+ })
354
+ .at(0);
355
+ var auction_lot_size = reader
356
+ .readVec(function (reader) {
357
+ return reader.read64();
358
+ })
359
+ .at(0);
360
+ var auction_benchmark_price = reader
361
+ .readVec(function (reader) {
362
+ return reader.read64();
363
+ })
364
+ .at(0);
365
+ var oracle_id = reader
366
+ .readVec(function (reader) {
367
+ return reader.read64();
368
+ })
369
+ .at(0);
370
+ result[index] = {
371
+ index: index,
372
+ auction_start_delay_ts_ms: auction_start_delay_ts_ms ? auction_start_delay_ts_ms : "0",
373
+ auction_lot_size: auction_lot_size ? auction_lot_size : "0",
374
+ auction_benchmark_price: auction_benchmark_price ? auction_benchmark_price : "0",
375
+ oracle_id: oracle_id ? oracle_id : "0",
376
+ };
377
+ });
378
+ // @ts-ignore
379
+ return [2 /*return*/, result];
380
+ }
381
+ });
382
+ });
383
+ }
384
+ exports.getAdditionalConfigs = getAdditionalConfigs;
package/package.json CHANGED
@@ -2,8 +2,9 @@
2
2
  "name": "@typus/typus-sdk",
3
3
  "author": "Typus",
4
4
  "description": "typus sdk",
5
- "version": "1.0.55",
5
+ "version": "1.0.57",
6
6
  "dependencies": {
7
+ "@mysten/bcs": "^0.7.1",
7
8
  "@mysten/sui.js": "^0.34.1",
8
9
  "@types/node": "^17.0.0",
9
10
  "bignumber.js": "^9.1.1",