@typus/typus-sdk 1.1.40 → 1.1.42

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.
@@ -12,6 +12,7 @@ export declare const TOKEN_NAME_TO_MODULE: {
12
12
  SUI: string;
13
13
  USDC: string;
14
14
  };
15
+ export declare const mainnetConnection: SuiClient;
15
16
  export declare const testnetConnection: SuiClient;
16
17
  export declare const ACTIVE_SUB_VAULT_TAG: number;
17
18
  export declare const DEACTIVATING_SUB_VAULT_TAG: number;
package/lib/constants.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PERFORMANCE_FEE_SUB_VAULT_TAG = exports.PREMIUM_SUB_VAULT_TAG = exports.BIDDER_SUB_VAULT_TAG = exports.WARMUP_SUB_VAULT_TAG = exports.INACTIVE_SUB_VAULT_TAG = exports.DEACTIVATING_SUB_VAULT_TAG = exports.ACTIVE_SUB_VAULT_TAG = exports.testnetConnection = exports.TOKEN_NAME_TO_MODULE = exports.TOKEN_NAME = exports.FAKE_TOKEN_TYPE_ARGUMENT = exports.DEFAULT_TYPE_ARGUMENT = exports.TOKEN_DECIMAL = exports.PRICE_DECIMAL = exports.SENDER = exports.CLOCK = void 0;
3
+ exports.PERFORMANCE_FEE_SUB_VAULT_TAG = exports.PREMIUM_SUB_VAULT_TAG = exports.BIDDER_SUB_VAULT_TAG = exports.WARMUP_SUB_VAULT_TAG = exports.INACTIVE_SUB_VAULT_TAG = exports.DEACTIVATING_SUB_VAULT_TAG = exports.ACTIVE_SUB_VAULT_TAG = exports.testnetConnection = exports.mainnetConnection = exports.TOKEN_NAME_TO_MODULE = exports.TOKEN_NAME = exports.FAKE_TOKEN_TYPE_ARGUMENT = exports.DEFAULT_TYPE_ARGUMENT = exports.TOKEN_DECIMAL = exports.PRICE_DECIMAL = exports.SENDER = exports.CLOCK = void 0;
4
4
  var client_1 = require("@mysten/sui.js/client");
5
5
  exports.CLOCK = "0x6";
6
6
  exports.SENDER = "0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
@@ -15,6 +15,9 @@ exports.TOKEN_NAME_TO_MODULE = {
15
15
  SUI: "sui",
16
16
  USDC: "usdc",
17
17
  };
18
+ exports.mainnetConnection = new client_1.SuiClient({
19
+ url: "https://fullnode.mainnet.sui.io:443/",
20
+ });
18
21
  exports.testnetConnection = new client_1.SuiClient({
19
22
  url: "https://fullnode.testnet.sui.io:443/",
20
23
  });
@@ -48,4 +48,5 @@ export interface ProfitSharing {
48
48
  total: string;
49
49
  }
50
50
  export declare function getProfitSharing(provider: SuiClient, diceProfitSharing: string): Promise<ProfitSharing>;
51
+ export declare function calculateLevelReward(totalRewards: number, levelShares: number[], numOfHolders: number[]): number[];
51
52
  export {};
@@ -36,7 +36,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  }
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.getProfitSharing = exports.getHistory = exports.getPlaygrounds = void 0;
39
+ exports.calculateLevelReward = exports.getProfitSharing = exports.getHistory = exports.getPlaygrounds = void 0;
40
40
  var token_1 = require("../token");
41
41
  function getPlaygrounds(provider, diceRegistry) {
42
42
  return __awaiter(this, void 0, void 0, function () {
@@ -168,3 +168,65 @@ function getProfitSharing(provider, diceProfitSharing) {
168
168
  });
169
169
  }
170
170
  exports.getProfitSharing = getProfitSharing;
171
+ function calculateLevelReward(totalRewards, levelShares, numOfHolders) {
172
+ // Step 1: Calculate original level rewards (per holder)
173
+ var totalShares = levelShares.reduce(function (acc, share) { return acc + share; }, 0);
174
+ var originalRewardPerHolder = levelShares.map(function (levelShare, index) {
175
+ var num = numOfHolders[index];
176
+ var levelRewardPerHolder = num > 0 ? (totalRewards * levelShare) / totalShares / num : 0;
177
+ return Math.floor(levelRewardPerHolder);
178
+ });
179
+ var originalLevelRewards = originalRewardPerHolder.map(function (reward, index) { return reward * numOfHolders[index]; });
180
+ var distributedRewards = originalLevelRewards.reduce(function (acc, reward) { return acc + reward; }, 0);
181
+ var emptyLevelRewards = totalRewards - distributedRewards;
182
+ // console.log("Step 1 - ", originalLevelRewards);
183
+ // Step 2: Distribute rewards from empty levels
184
+ var scaledRewardPerHolder;
185
+ if (emptyLevelRewards > 0) {
186
+ var undistributedRewards_1 = emptyLevelRewards;
187
+ var uncalculatedDistributedRewards_1 = distributedRewards;
188
+ scaledRewardPerHolder = originalRewardPerHolder.map(function (rewardPerHolder, index) {
189
+ var num = numOfHolders[index];
190
+ var scaledRewardPerHolder = num > 0
191
+ ? uncalculatedDistributedRewards_1 > 0
192
+ ? (rewardPerHolder * (uncalculatedDistributedRewards_1 + undistributedRewards_1)) / uncalculatedDistributedRewards_1
193
+ : rewardPerHolder
194
+ : 0;
195
+ undistributedRewards_1 -= (scaledRewardPerHolder - rewardPerHolder) * num;
196
+ uncalculatedDistributedRewards_1 -= rewardPerHolder * num;
197
+ return Math.floor(scaledRewardPerHolder);
198
+ });
199
+ }
200
+ else {
201
+ scaledRewardPerHolder = originalRewardPerHolder.slice();
202
+ }
203
+ // console.log("Step 2 - ", scaledRewardPerHolder);
204
+ // Step 3: Capped level reward
205
+ var cappedRewardPerHolder = [];
206
+ var tempHighLevelReward = 0;
207
+ scaledRewardPerHolder.forEach(function (lowLevelReward, index) {
208
+ var highLevelReward = scaledRewardPerHolder[index + 1] || 0;
209
+ if (highLevelReward > 0) {
210
+ tempHighLevelReward = highLevelReward;
211
+ }
212
+ cappedRewardPerHolder.push(Math.min(lowLevelReward, tempHighLevelReward));
213
+ });
214
+ // console.log("Step 3 - ", cappedRewardPerHolder);
215
+ // Step 4: Distribute capped reward from Step 3 into each level
216
+ var distributedRewardsStep4 = cappedRewardPerHolder.reduce(function (acc, reward, index) { return acc + reward * numOfHolders[index]; }, 0);
217
+ var undistributedRewardsStep4 = totalRewards - distributedRewardsStep4;
218
+ var uncalculatedDistributedRewardsStep4 = distributedRewardsStep4;
219
+ var levelReward = cappedRewardPerHolder.map(function (rewardPerHolder, index) {
220
+ var num = numOfHolders[index];
221
+ var scaledRewardPerHolder = uncalculatedDistributedRewardsStep4 > 0
222
+ ? (rewardPerHolder * (uncalculatedDistributedRewardsStep4 + undistributedRewardsStep4)) /
223
+ uncalculatedDistributedRewardsStep4
224
+ : rewardPerHolder;
225
+ undistributedRewardsStep4 -= (scaledRewardPerHolder - rewardPerHolder) * num;
226
+ uncalculatedDistributedRewardsStep4 -= rewardPerHolder * num;
227
+ return Math.floor(scaledRewardPerHolder);
228
+ });
229
+ // console.log("Step 4 - ", levelReward);
230
+ return levelReward;
231
+ }
232
+ exports.calculateLevelReward = calculateLevelReward;
@@ -1,5 +1,5 @@
1
1
  import { SuiClient } from "@mysten/sui.js/client";
2
- import { OwnedKiosks, Network } from "@mysten/kiosk";
2
+ import { KioskClient } from "@mysten/kiosk";
3
3
  export declare function getPool(provider: SuiClient, pool: string): Promise<PoolData>;
4
4
  export interface PoolData {
5
5
  pool_id: string;
@@ -15,9 +15,9 @@ interface TailsId {
15
15
  nftId: string;
16
16
  kiosk: string;
17
17
  kioskCap: string;
18
+ tails: Tails;
18
19
  }
19
- export declare function getTailsIds(provider: SuiClient, network: Network, nftConfig: any, kiosks: OwnedKiosks): Promise<TailsId[]>;
20
- export declare function getTails(provider: SuiClient, tailsIds: string[]): Promise<Tails[]>;
20
+ export declare function getTailsIds(kioskClient: KioskClient, nftConfig: any, address: string): Promise<TailsId[]>;
21
21
  export declare function fieldsToTails(fields: any): Tails;
22
22
  export interface Tails {
23
23
  id: string;
@@ -47,8 +47,7 @@ var __values = (this && this.__values) || function(o) {
47
47
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
48
48
  };
49
49
  Object.defineProperty(exports, "__esModule", { value: true });
50
- exports.LevelExpVec = exports.getLevelExp = exports.fieldsToTails = exports.getTails = exports.getTailsIds = exports.getWhitelistMap = exports.getPoolMap = exports.necklaces = exports.getPool = void 0;
51
- var kiosk_1 = require("@mysten/kiosk");
50
+ exports.LevelExpVec = exports.getLevelExp = exports.fieldsToTails = exports.getTailsIds = exports.getWhitelistMap = exports.getPoolMap = exports.necklaces = exports.getPool = void 0;
52
51
  function getPool(provider, pool) {
53
52
  var _a;
54
53
  return __awaiter(this, void 0, void 0, function () {
@@ -145,32 +144,34 @@ function getWhitelistMap(nftConfig, wlTokens) {
145
144
  });
146
145
  }
147
146
  exports.getWhitelistMap = getWhitelistMap;
148
- function getTailsIds(provider, network, nftConfig, kiosks) {
147
+ function getTailsIds(kioskClient, nftConfig, address) {
149
148
  return __awaiter(this, void 0, void 0, function () {
150
- var Tails, kioskClient, _loop_1, _a, _b, kioskOwnerCap, e_1_1;
149
+ var kiosks, Tails, _loop_1, _a, _b, kioskOwnerCap, e_1_1;
151
150
  var e_1, _c;
152
151
  return __generator(this, function (_d) {
153
152
  switch (_d.label) {
154
- case 0:
153
+ case 0: return [4 /*yield*/, kioskClient.getOwnedKiosks({ address: address })];
154
+ case 1:
155
+ kiosks = _d.sent();
155
156
  Tails = [];
156
- kioskClient = new kiosk_1.KioskClient({
157
- client: provider,
158
- network: network,
159
- });
160
157
  _loop_1 = function (kioskOwnerCap) {
161
158
  var res, tails;
162
159
  return __generator(this, function (_e) {
163
160
  switch (_e.label) {
164
- case 0: return [4 /*yield*/, kioskClient.getKiosk({ id: kioskOwnerCap.objectId })];
161
+ case 0: return [4 /*yield*/, kioskClient.getKiosk({ id: kioskOwnerCap.kioskId, options: { withKioskFields: true, withObjects: true } })];
165
162
  case 1:
166
163
  res = _e.sent();
167
164
  tails = res.items
168
165
  .filter(function (item) { return item.type == "".concat(nftConfig.NFT_PACKAGE, "::typus_nft::Tails"); })
169
166
  .map(function (item) {
167
+ // console.log(item.data);
168
+ // @ts-ignore
169
+ var tails = item.data;
170
170
  var t = {
171
171
  nftId: item.objectId,
172
172
  kiosk: kioskOwnerCap.kioskId,
173
173
  kioskCap: kioskOwnerCap.objectId,
174
+ tails: tails,
174
175
  };
175
176
  return t;
176
177
  });
@@ -180,76 +181,38 @@ function getTailsIds(provider, network, nftConfig, kiosks) {
180
181
  }
181
182
  });
182
183
  };
183
- _d.label = 1;
184
- case 1:
185
- _d.trys.push([1, 6, 7, 8]);
186
- _a = __values(kiosks.kioskOwnerCaps), _b = _a.next();
187
184
  _d.label = 2;
188
185
  case 2:
189
- if (!!_b.done) return [3 /*break*/, 5];
186
+ _d.trys.push([2, 7, 8, 9]);
187
+ _a = __values(kiosks.kioskOwnerCaps), _b = _a.next();
188
+ _d.label = 3;
189
+ case 3:
190
+ if (!!_b.done) return [3 /*break*/, 6];
190
191
  kioskOwnerCap = _b.value;
191
192
  return [5 /*yield**/, _loop_1(kioskOwnerCap)];
192
- case 3:
193
- _d.sent();
194
- _d.label = 4;
195
193
  case 4:
194
+ _d.sent();
195
+ _d.label = 5;
196
+ case 5:
196
197
  _b = _a.next();
197
- return [3 /*break*/, 2];
198
- case 5: return [3 /*break*/, 8];
199
- case 6:
198
+ return [3 /*break*/, 3];
199
+ case 6: return [3 /*break*/, 9];
200
+ case 7:
200
201
  e_1_1 = _d.sent();
201
202
  e_1 = { error: e_1_1 };
202
- return [3 /*break*/, 8];
203
- case 7:
203
+ return [3 /*break*/, 9];
204
+ case 8:
204
205
  try {
205
206
  if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
206
207
  }
207
208
  finally { if (e_1) throw e_1.error; }
208
209
  return [7 /*endfinally*/];
209
- case 8: return [2 /*return*/, Tails];
210
+ case 9: return [2 /*return*/, Tails];
210
211
  }
211
212
  });
212
213
  });
213
214
  }
214
215
  exports.getTailsIds = getTailsIds;
215
- function getTails(provider, tailsIds) {
216
- var _a;
217
- return __awaiter(this, void 0, void 0, function () {
218
- var Tails, len, results, results_1, results_1_1, result, fields, tails;
219
- var e_2, _b;
220
- return __generator(this, function (_c) {
221
- switch (_c.label) {
222
- case 0:
223
- Tails = [];
224
- _c.label = 1;
225
- case 1:
226
- if (!(tailsIds.length > 0)) return [3 /*break*/, 3];
227
- len = tailsIds.length > 50 ? 50 : tailsIds.length;
228
- return [4 /*yield*/, provider.multiGetObjects({ ids: tailsIds.splice(0, len), options: { showContent: true } })];
229
- case 2:
230
- results = _c.sent();
231
- try {
232
- for (results_1 = (e_2 = void 0, __values(results)), results_1_1 = results_1.next(); !results_1_1.done; results_1_1 = results_1.next()) {
233
- result = results_1_1.value;
234
- fields = (_a = result.data) === null || _a === void 0 ? void 0 : _a.content.fields;
235
- tails = fieldsToTails(fields);
236
- Tails.push(tails);
237
- }
238
- }
239
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
240
- finally {
241
- try {
242
- if (results_1_1 && !results_1_1.done && (_b = results_1.return)) _b.call(results_1);
243
- }
244
- finally { if (e_2) throw e_2.error; }
245
- }
246
- return [3 /*break*/, 1];
247
- case 3: return [2 /*return*/, Tails];
248
- }
249
- });
250
- });
251
- }
252
- exports.getTails = getTails;
253
216
  function fieldsToTails(fields) {
254
217
  // console.log(fields.attributes.fields.contents);
255
218
  var attributes = new Map();
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@typus/typus-sdk",
3
3
  "author": "Typus",
4
4
  "description": "typus sdk",
5
- "version": "1.1.40",
5
+ "version": "1.1.42",
6
6
  "dependencies": {
7
7
  "@mysten/bcs": "^0.7.3",
8
8
  "@mysten/kiosk": "0.7.11",